Thunder, Ice, and Everything Nice
tienwiki
https://tien.miraheze.org/wiki/Thunder,_Ice,_and_Everything_Nice_Wiki
MediaWiki 1.40.1
first-letter
Media
Special
Talk
User
User talk
Thunder, Ice, and Everything Nice
Thunder, Ice, and Everything Nice talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Module
Module talk
Template:Clear
10
84
603
2022-03-08T14:12:32Z
m>DarkMatterMan4500
0
Created page with "<div style="clear:{{{1|both}}};"></div><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<div style="clear:{{{1|both}}};"></div><noinclude>
{{documentation}}
</noinclude>
38bab3e3d7fbd3d6800d46556e60bc6bac494d72
Thunder, Ice, and Everything Nice Wiki
0
2
2
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<mainpage-leftcolumn-start />
<div style="text-align: center; font-size: x-large; padding: 1em;">'''Welcome to the {{SITENAME}}!'''</div>
Saturday D&D
We're a collaborative community website about {{topic}} that anyone, including you, can build and expand. Wikis like this one depend on readers getting involved and adding content. Click the "ADD NEW PAGE" or "EDIT" button at the top of any page to get started!
==Important articles==
<gallery position="center" captionalign="center" navigation="true">
File:Placeholder | [[A page about your topic]] |link=A page about your topic
File:Placeholder | [[A Main Character]] |link=A Main Character
File:Placeholder | [[The First Episode]] |link=The First Episode
File:Placeholder | [[An Important Location]] |link=An Important Location
File:Placeholder | [[A Key Event]] |link=A Key Event
File:Placeholder | [[A Crucial Item]] |link=A Crucial Item
</gallery>
<!-- The gallery above works well for individual articles, but it would also be good to have another below it that points to important Category: pages. -->
<mainpage-endcolumn />
<mainpage-rightcolumn-start />
''Need help building out this community?''
*[[Project:Wiki rules|Rules of this wiki]]
*[[w:c:community:Help:Getting Started|Getting Started]]
*[[w:c:community:Help:Contributing|How to Contribute]]
*[[w:c:community:Help:Community Management|Managing your new community]]
*[[w:c:community:Help:Contents|Guides]]
*[[w:c:community:Help:Index|All Help articles]]
You can also be part of the larger Fandom family of communities. Visit [[w:c:community|Fandom's Community Central]]!
''Community Founders'': Write a good and paragraph-length description for your welcome section about your topic. Let your readers know what your topic is about and add some general information about it. Then you should visit [[Special:AdminDashboard|the admin dashboard for more tips]].
<mainpage-endcolumn />
[[Category:{{SITENAME}}]]
5a91f33db42e924b78b7b31707417858d8dc3b9f
Template:Album
10
3
13
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly><infobox type="Album">
<title source="title"/>
<image source="image"><caption source="imagecaption"/></image>
<data source="artist"><label>Artist</label></data>
<data source="released"><label>Released</label></data>
<data source="recorded"><label>Recorded</label></data>
<data source="length"><label>Length</label></data>
<data source="label"><label>Label</label></data>
<data source="producer"><label>Producer</label></data>
</infobox></includeonly><noinclude>{{Documentation}}</noinclude>
7145bd5ecd9bcafcf1907686b6a57145c9c894ac
Template:Album/doc
10
4
14
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>
{{Album
| title =
| image = [e.g. "Example.jpg"]
| imagecaption =
| artist =
| released =
| recorded =
| length =
| label =
| producer =
}}
</pre>
== Sample output ==
{{Album
| title = Fleur
| image = Example.jpg
| artist = Marigold
| released = June 2012
| recorded = 2011
| length = 88:88
| label = Spring
| producer = Daffy
}}
<pre>
{{Album
| title = Fleur
| image = Example.jpg
| artist = Marigold
| released = June 2012
| recorded = 2011
| length = 88:88
| label = Spring
| producer = Daffy
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
34c5cd77d0a20c3509b82f0386c7429a8b47a5fb
Template:Documentation
10
5
15
2022-03-29T00:54:59Z
FANDOM
4
Draft subpages are deprecated with UCP. Default is "/sandbox".
wikitext
text/x-wiki
<includeonly>{| class="article-table plainlinks" style="width:100%;" role="complementary"
|- style="font-size:18px;"
! style="padding:0px;" | <div style="width:100%; padding:3px 0px; text-align:center;" class="color1">Template documentation</div>
|-
| ''Note: portions of the template sample may not be visible without values provided.''
|-
| View or edit [[{{{1|Template:{{PAGENAMEE}}/doc}}}|this documentation]]. ([[Template:Documentation|About template documentation]])
|-
| Editors can experiment in this template's [{{fullurl:{{FULLPAGENAMEE}}/sandbox|action=edit}} sandbox] and [{{fullurl:{{FULLPAGENAMEE}}/testcases}} test case] pages.
|}
<div style="margin:0 1em;">
{{{{{1|{{PAGENAME}}/doc}}}}}</div></includeonly><noinclude>{{Documentation}}[[Category:Documentation templates]]</noinclude>
ee98b7264ecdfefae4fda4e94a64c1d0e275ee55
Template:T
10
6
16
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<onlyinclude><nowiki>{{</nowiki>{{#if:{{{prefix|}}}|{{{prefix}}}:}}[[Template:{{{1}}}|{{{1}}}]]<!--
-->{{#if:{{{2|}}}||<span style="color:#555;">''<{{{2}}}>''</span>}}<!--
-->{{#if:{{{3|}}}||<span style="color:#555;">''<{{{3}}}>''</span>}}<!--
-->{{#if:{{{4|}}}||<span style="color:#555;">''<{{{4}}}>''</span>}}<!--
-->{{#if:{{{5|}}}||<span style="color:#555;">''<{{{5}}}>''</span>}}<!--
-->{{#if:{{{6|}}}||<span style="color:#555;">''<{{{6}}}>''</span>}}<!--
-->{{#if:{{{7|}}}||<span style="color:#555;">''<{{{7}}}>''</span>}}<!--
-->{{#if:{{{8|}}}||<span style="color:#555;">''<{{{8}}}>''</span>}}<!--
-->{{#if:{{{9|}}}||<span style="color:#555;">''<{{{9}}}>''</span>}}<!--
-->{{#if:{{{10|}}}||<span style="color:#555;">''<{{{10}}}>''</span>}}<!--
-->{{#if:{{{11|}}}||<span style="color:#555;">''<{{{11}}}>''</span>}}<!--
-->{{#if:{{{12|}}}||<span style="color:#555;">''<{{{12}}}>''</span>}}<!--
-->{{#if:{{{13|}}}||<span style="color:#555;">''<{{{13}}}>''</span>}}<!--
-->{{#if:{{{14|}}}||<span style="color:#555;">''<{{{14}}}>''</span>}}<!--
-->{{#if:{{{15|}}}||<span style="color:#555;">''<{{{15}}}>''</span>}}<!--
-->{{#if:{{{16|}}}||<span style="color:#555;">''<{{{16}}}>''</span>}}<!--
-->{{#if:{{{17|}}}||<span style="color:#555;">''<{{{17}}}>''</span>}}<!--
-->{{#if:{{{18|}}}||<span style="color:#555;">''<{{{18}}}>''</span>}}<!--
-->{{#if:{{{19|}}}||<span style="color:#555;">''<{{{19}}}>''</span>}}<!--
-->{{#if:{{{20|}}}||<span style="color:#555;">''<{{{20}}}>''</span>}}<!--
-->{{#if:{{{21|}}}||<span style="color:#555;">''<{{{21}}}>''</span>}}<!--
--><nowiki>}}</nowiki></onlyinclude><noinclude>{{documentation}}</noinclude>
4273916fece7a96eef48125efb615009a1fd6fe6
Template:Documentation/doc
10
7
17
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
==Description==
This template is used to insert descriptions on template pages.
==Syntax==
Add <code><nowiki><noinclude></nowiki>{{t|Documentation}}<nowiki></noinclude></nowiki></code> at the end of the template page.
Add <code><nowiki><noinclude></nowiki>{{t|Documentation|documentation page}}<nowiki></noinclude></nowiki></code> to transclude an alternative page from the /doc subpage.
==Usage==
===On the Template page===
This is the normal format when used:
<pre>
TEMPLATE CODE
<includeonly>Any categories to be inserted into articles by the template</includeonly>
<noinclude>{{Documentation}}</noinclude>
</pre>
''If your template is not a completed div or table, you may need to close the tags just before <code><nowiki>{{Documentation}}</nowiki></code> is inserted (within the noinclude tags).''
''A line break right before <code><nowiki>{{Documentation}}</nowiki></code> can also be useful as it helps prevent the documentation template "running into" previous code.''
===On the documentation page===
The documentation page is usually located on the /doc subpage for a template, but a different page can be specified with the first parameter of the template (see [[#Syntax|Syntax]]).
Normally, you will want to write something like the following on the documentation page:
<pre>
==Description==
This template is used to do something.
==Syntax==
Type <code>{{t|templatename}}</code> somewhere.
==Samples==
<code><nowiki>{{templatename|input}}</nowiki></code>
results in...
{{templatename|input}}
<includeonly>Any categories for the template itself</includeonly>
<noinclude>[[Category:Template documentation]]</noinclude>
</pre>
Use any or all of the above description/syntax/sample output sections. You may also want to add "see also" or other sections.
Note that the above example also uses the [[Template:T]] template.
<includeonly>[[Category:Documentation templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
58ca364cb71b551e4a71ddf3046cf41c84db0d57
Template:T/doc
10
8
18
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
A template link with a variable number of parameters (0-20).
;Syntax
:{{t|t|parameter1|parameter2|parameter3|parameter4|...|parameter20}} <!-- self-referential examples! -->
;Source
:Improved version not needing t/piece subtemplate developed on [http://templates.fandom.com Templates wiki] see the [http://templates.fandom.com/index.php?title=Template:T&action=history list of authors]. Copied here via CC-By-SA 3.0 license.
;Example
:{{t|t|param1|param2}}
<includeonly>[[Category:General wiki templates]]</includeonly>
<noinclude>[[Category:Template documentation]]</noinclude>
6f7307b6bcfef75efcc1d71fc932366c04cd61b3
Template:Character
10
9
19
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly><infobox type="Character">
<title source="name"/>
<image source="image">
<caption source="imagecaption" />
</image>
<group>
<data source="aliases"><label>Aliases</label></data>
<data source="relatives"><label>Relatives</label></data>
<data source="affiliation"><label>Affiliation</label></data>
<data source="occupation"><label>Occupation</label></data>
</group>
<group>
<header>Biographical information</header>
<data source="marital"><label>Marital status</label></data>
<data source="birthDate"><label>Date of birth</label></data>
<data source="birthPlace"><label>Place of birth</label></data>
<data source="deathDate"><label>Date of death</label></data>
<data source="deathPlace"><label>Place of death</label></data>
</group>
<group>
<header>Physical description</header>
<data source="species"><label>Species</label></data>
<data source="gender"><label>Gender</label></data>
<data source="height"><label>Height</label></data>
<data source="weight"><label>Weight</label></data>
<data source="eyes"><label>Eye color</label></data>
</group>
<group>
<header>Appearances</header>
<data source="portrayedby"><label>Portrayed by</label></data>
<data source="appearsin"><label>Appears in</label></data>
<data source="debut"><label>Debut</label></data>
</group>
</infobox>{{#ifeq: {{NAMESPACENUMBER}} | 0 | [[Category:Characters]]}}</includeonly><noinclude>{{Documentation}}</noinclude>
f63ba56dbc9f4a25683ff5d7104509d0e8bb9eda
Template:Character/doc
10
10
21
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>
{{Character
| name =
| image =
| imagecaption =
| aliases =
| relatives =
| affiliation =
| occupation =
| marital =
| birthDate =
| birthPlace =
| deathDate =
| deathPlace =
| species =
| gender =
| height =
| weight =
| eyes =
| portrayedby =
| appearsin =
| debut =
}}
</pre>
== Sample output ==
{{Character
| name = Flowa
| image = Example.jpg
| imagecaption = Flowa, at rest
| aliases = Flo
| relatives =
| affiliation =
| occupation =
| marital =
| birthDate = July 21st, 2013
| birthPlace = Iowa
| deathDate =
| deathPlace =
| species = Plant
| gender =
| height =
| weight =
| eyes =
| portrayedby =
| appearsin =
| debut =
}}
<pre>
{{Character
| name = Flowa
| image = Example.jpg
| imagecaption = Flowa, at rest
| aliases = Flo
| relatives =
| affiliation =
| occupation =
| marital =
| birthDate = July 21st, 2013
| birthPlace = Iowa
| deathDate =
| deathPlace =
| species = Plant
| gender =
| height =
| weight =
| eyes =
| portrayedby =
| appearsin =
| debut =
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
6ddf3451fd7140d6b498a17d53162a4ccd65e691
Template:Book
10
11
22
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly><infobox type="Book">
<title source="title"/>
<image source="image"><caption source="imagecaption"/></image>
<data source="author"><label>Author</label></data>
<data source="illustrator"><label>Illustrator</label></data>
<data source="datePublished"><label>Published on</label></data>
<data source="publisher"><label>Publisher</label></data>
<group layout="horizontal">
<header>Publication order</header>
<data source="previous"><label>Previous</label></data>
<data source="next"><label>Next</label></data>
</group>
</infobox>{{#ifeq: {{NAMESPACENUMBER}} | 0 | [[Category:Books]]}}</includeonly><noinclude>{{Documentation}}</noinclude>
c4bc425c60ee6f1a263f67a75f6d26aafc236c03
Template:Book/doc
10
12
23
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>{{Book
| title =
| image = [e.g. "Example.jpg"]
| author =
| illustrator =
| datePublished =
| publisher =
| previous =
| next =
}}</pre>
== Sample output ==
{{Book
| title = The Adventures of Flower
| image = Example.jpg
| author = Alice
| illustrator = Bob
| datePublished = April 1928
| publisher = Arthur's
| previous = Book One
| next = Book Three
}}
<pre>{{Book
| title = The Adventures of Flower
| image = Example.jpg
| author = Alice
| illustrator = Bob
| datePublished = April 1928
| publisher = Arthur's
| previous = Book One
| next = Book Three
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
7320d1953158c6673ed6ce2be7bc35e2356522e5
Template:Episode
10
13
24
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly><infobox type="Episode">
<title source="title"/>
<image source="image"><caption source="imagecaption"/></image>
<data source="partOfSeason"><label>Season</label></data>
<data source="episodeNumber"><label>Episode</label></data>
<data source="airDate"><label>Air date</label></data>
<data source="writer"><label>Writer</label></data>
<data source="director"><label>Director</label></data>
<group layout="horizontal">
<header>Episode guide</header>
<data source="previousEpisode"><label>Previous</label></data>
<data source="nextEpisode"><label>Next</label></data>
</group>
</infobox>{{#ifeq: {{NAMESPACENUMBER}} | 0 | [[Category:Episodes]]}}</includeonly><noinclude>{{Documentation}}</noinclude>
222b04973118bf9a11e3e5f3a034c07b6ec30fee
Template:Episode/doc
10
14
25
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>{{Episode
| title =
| partOfSeason =
| episodeNumber =
| image = [e.g. "Example.jpg"]
| airDate =
| writer =
| director =
| previousEpisode =
| nextEpisode =
}}</pre>
== Sample output ==
{{Episode
| title = Flower of Babel
| partOfSeason = One
| episodeNumber = Three
| image = Example.jpg
| airDate = Unaired
| writer = D. Righta
| director = A. di Rektour
| previousEpisode = Episode Two
| nextEpisode = Episode Four
}}<pre>{{Episode
| title = Flower of Babel
| partOfSeason = One
| episodeNumber = Three
| image = Example.jpg
| airDate = Unaired
| writer = D. Righta
| director = A. di Rektour
| previousEpisode = Episode Two
| nextEpisode = Episode Four
}}</pre>
<includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
422683315393b9908127727460675544f6ffb8cf
Template:Event
10
15
26
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly><infobox type="Event">
<title source="title"/>
<image source="image"><caption source="imagecaption"/></image>
<data source="performers"><label>Performers</label></data>
<data source="date"><label>Date</label></data>
<data source="location"><label>Location</label></data>
</infobox>{{#ifeq: {{NAMESPACENUMBER}} | 0 | [[Category:Events]]}}</includeonly><noinclude>{{Documentation}}</noinclude>
d66b112135e43b8474d30a6dab0feaab6588dfe8
Template:Event/doc
10
16
27
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>
{{Event
| title =
| image = [e.g. "Example.jpg"]
| imagecaption =
| performers =
| date =
| location =
}}
</pre>
== Sample output ==
{{Event
| title = Flower du Jour
| image = Example.jpg
| performers = Awesome Ones
| date = All the time
| location = Everywhere
}}
<pre>
{{Event
| title = Flower du Jour
| image = Example.jpg
| performers = Awesome Ones
| date = All the time
| location = Everywhere
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
1502585ceb0f0a7e1e70edc0fa8c88720e7da905
Template:Item
10
17
28
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly><infobox type="Item">
<title source="title"/>
<image source="image"><caption source="imagecaption"/></image>
<data source="type"><label>Type</label></data>
<data source="effects"><label>Effects</label></data>
<data source="source"><label>Source</label></data>
<data source="buy"><label>Cost to buy</label></data>
<data source="sell"><label>Cost to sell</label></data>
</infobox>{{#ifeq: {{NAMESPACENUMBER}} | 0 | [[Category:Items]]}}</includeonly><noinclude>{{Documentation}}</noinclude>
1c76f47b4d1d6c296c09c245c7dd7d4efc9ff9e6
Template:Item/doc
10
18
29
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>
{{Item
| title =
| image = [e.g. "Example.jpg"]
| imagecaption =
| type =
| effects =
| source =
| buy =
| sell =
}}
</pre>
== Sample output ==
{{Item
| title = Power Flower
| image = Example.jpg
| type = Food
| effects = +1 Fire
| source = Vendor
| buy = 5g
| sell = 1g
}}<pre>
{{Item
| title = Power Flower
| image = Example.jpg
| type = Food
| effects = +1 Fire
| source = Vendor
| buy = 5g
| sell = 1g
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
ecd61f0a9df462e9790349a7ef0034b375ef0e2b
Template:Location
10
19
30
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly><infobox type="Location">
<title source="title"/>
<image source="image"><caption source="imagecaption"/></image>
<image source="map"><caption source="mapcaption"/></image>
<data source="type"><label>Type</label></data>
<data source="level"><label>Level</label></data>
<data source="location"><label>Location</label></data>
<data source="inhabitants"><label>Inhabitants</label></data>
</infobox>{{#ifeq: {{NAMESPACENUMBER}} | 0 | [[Category:Locations]]}}</includeonly><noinclude>{{Documentation}}</noinclude>
74c089bf3093e560bd6a2144977d9d0bc5faebc0
Template:Location/doc
10
20
31
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>
{{Location
| title =
| image = [e.g. "Example.jpg"]
| imagecaption =
| map = [e.g. "Example.jpg"]
| mapcaption =
| type =
| level =
| location =
| inhabitants =
}}
</pre>
== Sample output ==
{{Location
| title = Flora Island
| image = Example.jpg
| imagecaption = The island
| map = Example.jpg
| mapcaption = Zone map
| type = Contested
| level = 1-5
| location = Earth
| inhabitants = Stompy Humans, Drinky Bees
}}<pre>
{{Location
| title = Flora Island
| image = Example.jpg
| imagecaption = The island
| map = Example.jpg
| mapcaption = Zone map
| type = Contested
| level = 1-5
| location = Earth
| inhabitants = Stompy Humans, Drinky Bees
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
e3e627290fa1c04d98083b44bcd2fa5cb562e13c
Template:Navbox
10
21
32
2022-03-29T00:54:59Z
FANDOM
4
1 revision imported
wikitext
text/x-wiki
{| style="width:100%; margin-top:1em; border:1px solid #999; font-size:90%; text-align:center;"
|-
! style="padding:0.2em 0.5em;" nowrap="nowrap" class="color1" | {{{header}}}
|-
| style="padding:0.2em 0.5em;" | {{{body}}}
|}<noinclude>
{{documentation}}</noinclude>
21aa3440d9c06c537ca5808c298e155d57e8dc90
Template:Navbox/doc
10
22
33
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
:This template is used to create a basic navigation box. You can do so by calling the template, via the steps under "Syntax", but it is recommended to '''copy the code verbatim''' via the steps under "Navbox Creation".
;Navbox Creation
<inputbox>
type=create
prefix=Template:
preload=Template:Navbox
editintro=Template:Navbox/doc
buttonlabel=Make your navbox!
default = Navbox Foo
</inputbox>
#Think of a name for your navbox, like "Navbox Foo". Type it in the above field, press the button, and save the page immediately. Be ready to return to ''this'' page to see the rest of the instructions.
#Edit the resulting page in source mode.
#Replace <code>{{{header}}}</code> with the text you would like to appear in the header.
#Replace <code>{{{body}}}</code> with the text you would like to appear in the body.
#To add another section, copy these four lines of code immediately below the lines in the existing code that they resemble:
<pre>|-
! style="padding:0.2em 0.5em;" nowrap="nowrap" class="color1" | {{{header}}}
|-
| style="padding:0.2em 0.5em;" | {{{body}}}</pre>
Save the page once you have added as many sections as you needed, and filled them with content. You may also want to create a /doc subpage explaining that to call the resulting template, one must only type <code>{<nowiki/>{Navbox Foo}}</code>, or rather, whatever we decided to name the template in step 1.
;Syntax
<pre>{{navbox
|header=Land of Bob
|body=This <nowiki>[[place]]</nowiki> and that <nowiki>[[place]]</nowiki>.
}}</pre>
:Results in...
{{navbox
|header=Land of Bob
|body=This <nowiki>[[place]]</nowiki> and that <nowiki>[[place]]</nowiki>.
}}
<includeonly>[[Category:Navbox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
4b1a1bf5f00c2d159d30d8f8bc525309ac16d406
Template:Quest
10
23
34
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly><infobox type="Quest">
<title source="title"/>
<image source="image"><caption source="imagecaption"/></image>
<data source="start"><label>Start</label></data>
<data source="end"><label>End</label></data>
<data source="prerequisites"><label>Prerequisites</label></data>
<data source="level"><label>Level</label></data>
<data source="location"><label>Location</label></data>
<data source="rewards"><label>Rewards</label></data>
<group layout="horizontal">
<header>Quest progression</header>
<data source="previous"><label>Previous</label></data>
<data source="next"><label>Next</label></data>
</group>
</infobox>{{#ifeq: {{NAMESPACENUMBER}} | 0 | [[Category:Quests]]}}</includeonly><noinclude>{{Documentation}}</noinclude>
1057bf1c3220419334e60f6b01c07995f871d8f8
Template:Quest/doc
10
24
35
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>
{{Quest
| title =
| image = [e.g. "Example.jpg"]
| imagecaption =
| start =
| end =
| prerequisites =
| level =
| location =
| rewards =
| previous =
| next =
}}
</pre>
== Sample output ==
{{Quest
| title = Example infobox
| image = Example.jpg
| start = Chrys
| end = Geran
| prerequisites = None
| level = 5
| location = Earth
| rewards = Justice-Wrought Petals
| previous = A
| next = C
}}
<pre>{{Quest
| title = Example infobox
| image = Example.jpg
| start = Chrys
| end = Geran
| prerequisites = None
| level = 5
| location = Earth
| rewards = Justice-Wrought Petals
| previous = A
| next = C
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
3c80ee4fc3fe45023bd67b3c400b2e64f4f2892a
File:Wiki.png
6
25
36
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
[[Category:Wiki skin images]]
f0235f85e2414431e046ae251792bf050daef5f7
Template:Permission
10
26
37
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
{{LicenseBox|text=''This file is copyrighted. The copyright holder has given permission for its use.''}}{{#ifeq: {{NAMESPACENUMBER}} | 0 | <includeonly>[[Category:Files used with permission]]</includeonly>}}<noinclude>
{{documentation}}</noinclude>
5940d21c4cf55ab1e46623c8d7202220620ea3fc
Template:Fairuse
10
27
38
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
{{LicenseBox|text=''This file is copyrighted. It will be used in a way that qualifies as fair use under US copyright law.''}}{{#ifeq: {{NAMESPACENUMBER}} | 0 | <includeonly>[[Category:Fairuse files]]</includeonly>}}<noinclude>
{{documentation}}</noinclude>
5db6645c70193dbeb65eed77de07f36451e1145c
Template:Self
10
28
39
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
{{LicenseBox|text=''This file was uploaded by the photographer or author.''}}{{#ifeq: {{NAMESPACENUMBER}} | 0 | <includeonly>[[Category:Files uploaded by the photographer or author]]</includeonly>}}<noinclude>
{{documentation}}</noinclude>
c3570ab7a69cc0cdf1478e8b7d45f8c70f1214c0
Template:From Wikimedia
10
29
40
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
{{LicenseBox|text=''This file was originally uploaded on Wikipedia or another Wikimedia project.''}}{{#ifeq: {{NAMESPACENUMBER}} | 0 | <includeonly>[[Category:Files from WikiMedia projects]]</includeonly>}}<noinclude>
{{documentation}}</noinclude>
72fed0e402d6912cd6381ef1b21b52929b041d8c
Template:CC-BY-SA
10
30
41
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
{{LicenseBox|text=''This file is licensed under the [http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-Share Alike License].''}}{{#ifeq: {{NAMESPACENUMBER}} | 0 | <includeonly>[[Category:CC-BY-SA files]]</includeonly>}}<noinclude>
{{documentation}}</noinclude>
b7cc0c0ae4d0cbff86fb66f332cdbfd9ef0c67f1
Template:Other free
10
31
42
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
{{LicenseBox|text=''This file is licensed under a free license.''}}{{#ifeq: {{NAMESPACENUMBER}} | 0 | <includeonly>[[Category:Freely licensed files]]</includeonly>}}<noinclude>
{{documentation}}</noinclude>
a0e93bfb8a804eb54e67553ff50ba57b368ba00d
Template:PD
10
32
43
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
{{LicenseBox|text=''This file is in the public domain''}}{{#ifeq: {{NAMESPACENUMBER}} | 0 | <includeonly>[[Category:Public domain files]]</includeonly>}}<noinclude>
{{documentation}}</noinclude>
daf709f747ba95ea06112acade4c78177a475e30
Template:Permission/doc
10
33
44
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
:This template is used to mark images as being copyrighted, but the copyright holder has given permission for its use.
;Syntax
:Type <code>{{t|permission}}</code> on the image information page.
<includeonly>[[Category:Image license templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
e2fc5fa15609d14fe9de91b503904f2b3f363afa
Template:Fairuse/doc
10
34
45
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
:This template is used to mark images as fair use.
;Syntax
:Type <code>{{t|fairuse}}</code> on the image information page.
<includeonly>[[Category:Image license templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
a0b1f9487b6ecaaa0f6ea70533a69c17d42e01ff
Template:Self/doc
10
35
46
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
:This template is used to mark images as having been uploaded by the photographer or author.
;Syntax
:Type <code>{{t|self}}</code> on the image information page.
<includeonly>[[Category:Image license templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
8daf839df62f0465275f6ef57c3998c9af9e4e1d
Template:From Wikimedia/doc
10
36
47
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
:This template is used to mark images as having been uploaded on [[wikipedia:|Wikipedia]] or another [[wikimedia:|Wikimedia]] project.
;Syntax
:Type <code>{{t|From Wikimedia}}</code> on the image information page.
<includeonly>[[Category:Image license templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
077fe0f228cb18bf949fee95011ec7b36fe64033
Template:CC-BY-SA/doc
10
37
48
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
:This template is used to mark images with the CC-BY-SA license.
;Syntax
:Type <code>{{t|CC-BY-SA}}</code> on the image information page.
<includeonly>[[Category:Image license templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
4fa145ced3f3a218b897f635df8d678eeff73464
Template:Other free/doc
10
38
49
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
:This template is used to mark images with a free license not covered by other image templates.
;Syntax
:Type <code>{{t|Other free}}</code> on the image information page.
<includeonly>[[Category:Image license templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
f4a03ee383d67da50c93408169b82b8217ff1404
Template:PD/doc
10
39
50
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
:This template is used to mark images as being in the public domain.
;Syntax
:Type <code>{{t|PD}}</code> on the image information page.
<includeonly>[[Category:Image license templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
bf14002371e6786761dfb4a58f4fdaf44062b8cc
Template:Topic
10
40
51
2022-03-29T00:54:59Z
FANDOM
4
Created page with "<includeonly>{{#sub:{{#replace:{{SITENAME}}| Wiki}}|-{{#len:{{#replace:{{SITENAME}}| Wiki}}}}-1}}</includeonly><noinclude>{{documentation}}</noinclude>"
wikitext
text/x-wiki
<includeonly>{{#sub:{{#replace:{{SITENAME}}| Wiki}}|-{{#len:{{#replace:{{SITENAME}}| Wiki}}}}-1}}</includeonly><noinclude>{{documentation}}</noinclude>
e8c5bb53e6d20ba0b81fcfa08813051675219442
Template:Topic/doc
10
41
52
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
== Description ==
This template uses your wiki's <code>SITENAME</code> and strips off the word "wiki" leaving what is in most cases the text describing the topic of your wiki. To use this template in its basic form, simply add the {{T|{{BASEPAGENAME}}}} template wherever you want your topic to appear in a sentence or section.
If your wiki's <code>SITENAME</code> minus the word "wiki" is not a good descriptor for your wiki's topic, you may also simply edit the template and replace it with just the text you want displayed.
== Syntax ==
<pre>{{Topic}}</pre>
== Sample output ==
{{Topic}}
<includeonly>[[Category:Templates]]</includeonly><noinclude>[[Category:Template documentation|{{PAGENAME}}]]</noinclude>
54e98cb6fa2fa6aec9e9fa9b138b0cd6d5bf321b
Category:Infobox templates
14
42
53
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:Templates]]"
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:Templates
14
43
54
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:Maintenance]]"
wikitext
text/x-wiki
[[Category:Maintenance]]
a106a39e26c77e7b2ec90cb83728a6446cb6a1a1
Category:Maintenance
14
44
55
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
The subcategories of this category contain pages that have been identified as needing attention for one or more of the following reasons:
* Changes have been suggested that should be discussed first or are under discussion.
* The page has flaws that need addressing by an editor with the knowledge or skills to help.
* The action the page needs requires special rights.
''See also:''
{{cols|2|
* [[Special:BrokenRedirects|Broken redirects]]
* [[Special:DoubleRedirects|Double redirects]]
* [[Special:UncategorizedCategories|Uncategorized categories]]
* [[Special:UncategorizedFiles|Uncategorized files]]
* [[Special:UncategorizedPages|Uncategorized pages]]
* [[Special:UncategorizedTemplates|Uncategorized templates]]
* [[Special:WantedCategories|Wanted categories]]
* [[Special:WantedFiles|Wanted files]]
* [[Special:WantedPages|Wanted pages]]
* [[Special:WantedTemplates|Wanted templates]]
* [[Special:TrackingCategories|Other special tracking categories]]
}}
[[Category:{{SITENAME}}]]
3646bf22bbf81213a9b8ea11df02ceee8866b235
Category:Image license templates
14
45
56
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:Templates]]"
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:Navbox templates
14
46
57
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:Templates]]"
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:General wiki templates
14
47
58
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:Templates]]"
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:Documentation templates
14
48
59
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:Templates]]"
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:Template documentation
14
49
60
2022-03-29T00:54:59Z
FANDOM
4
Created page with "The templates in this category contain documentation about other templates. The are automatically put here by the {{T|Documentation}} template. [[Category:Templates]]"
wikitext
text/x-wiki
The templates in this category contain documentation about other templates. The are automatically put here by the {{T|Documentation}} template.
[[Category:Templates]]
e1cf9416700d7877b308b2f9051b33cd028dd11d
Template:Main
10
50
61
2022-03-29T00:54:59Z
FANDOM
4
1 revision imported
wikitext
text/x-wiki
<includeonly>{{#invoke:Hatnote|main}}</includeonly>
<noinclude>{{Documentation|:Template:Hatnote/doc}}<!--
For a more traditional wikitext version of this template, see
https://templates.fandom.com/wiki/Template:Main_article
--></noinclude>
de20b6a379396a3458f12d72e486fce07869137c
Template:See also
10
51
62
2022-03-29T00:54:59Z
FANDOM
4
1 revision imported
wikitext
text/x-wiki
<includeonly>{{#invoke:Hatnote|seeAlso}}</includeonly>
<noinclude>{{Documentation|:Template:Hatnote/doc}}<!--
For a more traditional wikitext version of this template, see
https://templates.fandom.com/wiki/Template:Hatnote
--></noinclude>
e245d8ecb350a8965723151f4fad9d3cafedad60
Template:About
10
52
63
2022-03-29T00:54:59Z
FANDOM
4
1 revision imported
wikitext
text/x-wiki
<includeonly>{{#invoke:Hatnote|about}}</includeonly>
<noinclude>{{Documentation|:Template:Hatnote/doc}}<!--
For a more traditional wikitext version of this template, see
https://templates.fandom.com/wiki/Template:About
--></noinclude>
510109cae7f705952c7a0279d73a7a44fa82d41f
Template:For
10
53
64
2022-03-29T00:54:59Z
FANDOM
4
1 revision imported
wikitext
text/x-wiki
<includeonly>{{#invoke:Hatnote|For}}</includeonly>
<noinclude>{{Documentation|:Template:Hatnote/doc}}<!--
For a more traditional wikitext version of this template, see
https://templates.fandom.com/wiki/Template:Hatnote
--></noinclude>
6caebf265784c02a3dba04fe77eb5c5afb52fbd4
Template:Further
10
54
65
2022-03-29T00:54:59Z
FANDOM
4
1 revision imported
wikitext
text/x-wiki
<includeonly>{{#invoke:Hatnote|further}}</includeonly>
<noinclude>{{Documentation|:Template:Hatnote/doc}}<!--
For a more traditional wikitext version of this template, see
https://templates.fandom.com/wiki/Template:Hatnote
--></noinclude>
2b274c2a078defdd0995162869db05d3fc772067
Template:Hatnote
10
55
66
2022-03-29T00:54:59Z
FANDOM
4
1 revision imported
wikitext
text/x-wiki
<includeonly>{{#invoke:Hatnote|hatnote}}</includeonly><noinclude>{{Documentation}}</noinclude>
47651229f8ca41785babe25d56cdae7ac03ad9e1
Template:Delete
10
56
67
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
{{MessageBox
|header = Candidate for deletion
|type = delete
|text = This page has been nominated for removal from the wiki.
|comment = Remember to check [[Special:Whatlinkshere/{{FULLPAGENAME}}|what links here]] and [{{fullurl:{{FULLPAGENAME}}|action=history}} the page history] before deletion.
|class = notice hidden plainlinks
|id = delete
}}<includeonly>[[Category:Candidates for deletion]]</includeonly><noinclude>
{{Documentation}}</noinclude>
4173b2533a1aa36de4f2777956f1eae8889808ba
Template:Quote
10
57
68
2022-03-29T00:54:59Z
FANDOM
4
1 revision imported
wikitext
text/x-wiki
{{#invoke:Quote|quote}}<noinclude>{{Documentation}}<!--
For a more traditional wikitext version of this template, see
https://starter.fandom.com/wiki/Template:Quote?oldid=4277
--></noinclude>
bf6ed2ef0e8d676125dfd9d9b8b8ad72a18049e3
Template:Disambiguation
10
58
69
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
{{MessageBox
| header = Disambiguation page for {{PAGENAME}}
| type = disambiguation
| text = The following is a list of links to pages that might share the same title.
| comment = Please follow one of the disambiguation links below or [[Special:Search|search]] to find the page you were looking for if it is not listed. If an [[Special:Whatlinkshere/{{FULLPAGENAME}}|internal link]] led you here, you may wish to change the link to point directly to the intended article.
| class = notice hidden
| id = disambiguation}}
<includeonly>__DISAMBIG__[[Category:Disambiguations]]</includeonly><noinclude>
{{documentation}}</noinclude>
16605ae9114395add2e702cee409d0bd2deb7603
Template:MessageBox
10
59
70
2022-03-29T00:54:59Z
FANDOM
4
1 revision imported
wikitext
text/x-wiki
{{#invoke:Mbox|main}}<noinclude>{{Documentation}}<!--
For a more traditional wikitext version of this template, see
https://templates.fandom.com/wiki/Template:Ambox
--></noinclude>
fab8a2df56fd74147e1709af14e8993cfab7ebe7
Template:Dialogue
10
60
71
2022-03-29T00:54:59Z
FANDOM
4
1 revision imported
wikitext
text/x-wiki
<includeonly><blockquote data-format="dialogue">{{#invoke:Dialogue|main}}</blockquote></includeonly><noinclude>{{Documentation}}<!--
For a more traditional wikitext version of this template, see
https://templates.fandom.com/wiki/Template:Dialogue
--></noinclude>
400ad4d61c7eff1f67db8a2116441090d803cb3d
Template:Namespace
10
61
72
2022-03-29T00:54:59Z
FANDOM
4
1 revision imported
wikitext
text/x-wiki
{{SAFESUBST:<noinclude />#invoke:Namespace detect|main}}<noinclude>{{Documentation}}<!--
For a more traditional wikitext version of this template, see
https://templates.fandom.com/wiki/Template:Namespace_detect
--></noinclude>
f5b6ed2c0363fd704c716a6e5420a5cc0546392f
Template:Hatnote/doc
10
62
73
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
The hatnotes used for adding links between articles where more context is important.
Broadly speaking, a hatnote should answer a readers' question: Am I on the right page?
== Usage ==
; Basic usage:
{{hatnote|''text''}}
; All parameters:
{{hatnote|''text''|extraclasses=''extra classes''|selfref=''yes''|category=''no''}}
== Parameters ==
This template accepts the following parameters:
* <code>1</code> - the hatnote text (required)
* <code>extraclasses</code> - any extra CSS classes to be added.
* <code>selfref</code> - If set to "yes", "y", "true" or "1", adds the CSS class "selfref". This is used to denote self-references.
* <code>category</code> - If set to "no", "n", "false", or "0", suppresses the error tracking category ([[:Category:Hatnote templates with errors]]). This has an effect only if the leftmost parameter (the hatnote text) is omitted.
== Example ==
* <code><nowiki>{{hatnote|Example hatnote text}}</nowiki></code> → {{hatnote|Example hatnote text}}
== Typical types ==
{{T|Main}}, {{T|Further}} are very similar, but indicate either the primary page for a topic or more detailed related topic. They have a nearly identical set of parameters.
;{{T|Main}}: When an article is large, it often has a summary and a link to a main article. This template is used after the heading of the summary, to indicate a link to the subtopic article that has been summarized.
;{{T|Further}}: Used to link to articles containing further information on this topic.
;{{T|See also}}: Used to link to additional articles on related topics.
:;{{T|Main|Main Page}} →:{{Main|Main Page}}
:;{{T|Main|Main Page|Main Page}} →:{{Main|Main Page|Main Page}}
:*<code>1</code>, <code>2</code>, <code>3</code>, ... – the pages to link to. If no page names are specified, the current page name is used instead (without the namespace prefix). Categories and files are automatically escaped with the [[w:Help:Colon trick|colon trick]], and links to sections are automatically formatted as ''page § section'', rather than the MediaWiki default of ''page#section''.
:*<code>l1</code>, <code>l2</code>, <code>l3</code>, ... ''or''<code>label 1</code>, <code>label 2</code>, <code>label 3</code>, ... – optional labels for each of the pages to link to (this is for articles where a piped link would be used). Note that the extra parameters use a lower case 'L', for example, <code>l1</code>, <u>not</u> <code>L1</code>.
:*<code>selfref</code> – if set to "yes", "y", "true" or "1", adds the CSS class "selfref". This is used to denote self-references.
== Disambiguation ==
Templates such as {{T|About}} and {{T|For}} are to be used in cases where a disambiguation is not needed. In general, disambiguation pages should only be used for 4 or more titles that are mostly or entirely identical, except for a qualifier.
;{{T|About}}: Links the reader to other articles with similar titles or concepts that they may have been seeking instead. The template has several formats, including:
:;{{T|About|Use1}} →:{{About|}}
:;{{T|About|Use1|<nowiki/>|Main Page}} →:{{About|Use1||Main Page}}
:;{{T|About|Use1|<nowiki/>|Main Page|and|Main Page}} →:{{About|Use1||Main Page|and|Main Page}}
:;{{T|About|Use1|Use2|Main Page}} →:{{About|Use1|Use2|Main Page}}
:;{{T|About|Use1|Use2|Main Page|and|Main Page}} →:{{About|Use1|Use2|Main Page|and|Main Page}}
:;{{T|About|Use1|Use2|Main Page|other uses}} →:{{About|Use1|Use2|Main Page|other uses}}
Alternately, a <code>section=yes</code> parameter can be added to the {{T|About}} template for use at the top of a section. When using this parameter, the wording in the template changes to specify that it is being used in a section:
:;{{T|About|Use1|<nowiki>section=yes</nowiki>}} →:{{About|Use1|section=yes}}
:;{{T|About|Use1|<nowiki/>|Main Page|<nowiki>section=yes</nowiki>}} →:{{About|Use1||Main Page|section=yes}}
:;{{T|About|Use1|Use2|Main Page|<nowiki>section=yes</nowiki>}} →:{{About|Use1|Use2|Main Page|section=yes}}
:;{{T|About|Use1|Use2|Main Page|and|Main Page|<nowiki>section=yes</nowiki>}} →:{{About|Use1|Use2|Main Page|and|Main Page|section=yes}}
:;{{T|About|Use1|Use2|Main Page|other uses|<nowiki>section=yes</nowiki>}} →:{{About|Use1|Use2|Main Page|other uses|section=yes}}
A <var>text</var> option adds text to the end; note that this should be only used when truly necessary, and the other hatnote templates listed below don't suffice. This template also supports <var>selfref</var>.
;{{T|For}}: Provides links to up to four articles or disambiguation pages. It accepts zero to five parameters.
:;If used without parameters on a page named ''Foo'', the result is
::{{hatnote|For other uses, see [[:Foo (disambiguation)]].}}
:;The first parameter changes the hatnote itself and should be plain text, e.g. {{T|For|similar terms}} yields
::{{hatnote|For similar terms, see [[:Foo (disambiguation)]].}}
:;The second parameter is used to change the resultant link, e.g. {{T|For|similar terms|Main Page}} yields
::{{For|similar terms|Main Page}}
:;The third, fourth and fifth parameters are used to give one, two, or three supplementary links:
:*{{For|similar terms|Main Page|Main Page}}
:*{{For|similar terms|Main Page|Main Page|Main Page}}
:*{{For|similar terms|Main Page|Main Page|Main Page|Main Page}}
:the last being produced by e.g. {{T|For|similar terms|Main Page|Main Page|Main Page|Main Page}}.
== Errors ==
If no hatnote text is supplied, the template will output the following message:
* {{hatnote|category=no}}
If you see this error message, it is for one of four reasons:
# No parameters were specified (the template code was <code><nowiki>{{hatnote}}</nowiki></code>). Please use <code><nowiki>{{hatnote|</nowiki>''text''<nowiki>}}</nowiki></code> instead.
# Some parameters were specified, but the hatnote text wasn't included. For example, the template text <code><nowiki>{{hatnote|extraclasses=seealso}}</nowiki></code> will produce this error. Please use (for example) <code><nowiki>{{hatnote|</nowiki>''text''<nowiki>|extraclasses=seealso}}</nowiki></code> instead.
# The hatnote text was specified, but that text contains an equals sign ("="). The equals sign has a special meaning in template code, and because of this it cannot be used in template parameters that do not specify a parameter name. For example, the template code <code><nowiki>{{hatnote|2+2=4}}</nowiki></code> will produce this error. To work around this, you can specify the parameter name explicitly by using <code>1=</code> before the hatnote text, like this: <code><nowiki>{{hatnote|1=2+2=4}}</nowiki></code>.
# You tried to access [[Module:Hatnote]] directly by using <code><nowiki>{{#invoke:hatnote|hatnote|</nowiki>''text''<nowiki>}}</nowiki></code>. Use of #invoke in this way has been disabled for performance reasons. Please use <code><nowiki>{{hatnote|</nowiki>''text''<nowiki>}}</nowiki></code> instead.
Pages that contain this error message are tracked in [[:Category:Hatnote templates with errors]].
== Technical details ==
This template uses the [[w:Help:Lua|Lua templating language]], and more information can be found [[w:c:dev:Global_Lua_Modules/Hatnote|on the Global Lua Module page]]. '''For a traditional wikitext version of this template, see [[w:c:templates:Template:Hatnote|Hatnote on Templates Wiki]]'''.
The HTML code produced by this template looks like this:
* <code><nowiki><div role="note" class="hatnote"></nowiki>''hatnote text''<nowiki></div></nowiki></code>
<includeonly>[[Category:Notice templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
f89b62bda227691a45fd6d42d8bf89b151436cd2
Template:Delete/doc
10
63
74
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
:This template is used to mark pages for deletion, categorizing them in [[:Category:Candidates for deletion]].
;Syntax
:Type <code>{{t|delete}}</code> on the page to be deleted.'''
<includeonly>[[Category:Notice templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
baa263e149fb470c182f0de3af57178739e61a86
Template:Quote/doc
10
64
75
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
==Description==
To use this template, enter the following and fill in the appropriate fields. Most fields left blank will not show up.
==Syntax==
<pre>
{{Quote
| quote =
| speaker =
| source =
}}
</pre>
As an alternative, these can be placed in positional order.
==Samples==
{{Quote
| quote = When you play the game of thrones, you win or you die.
| speaker = [[w:c:gameofthrones:Cersei Lannister|Cersei Lannister]]
| source = [[w:c:gameofthrones:You Win or You Die|"You Win or You Die"]]
}}
<pre>
{{Quote
| quote = When you play the game of thrones, you win or you die.
| speaker = [[w:c:gameofthrones:Cersei Lannister|Cersei Lannister]]
| source = [[w:c:gameofthrones:You Win or You Die|"You Win or You Die"]]
}}
</pre>
or
<pre>
{{Quote
| When you play the game of thrones, you win or you die.
| [[w:c:gameofthrones:Cersei Lannister|Cersei Lannister]]
| [[w:c:gameofthrones:You Win or You Die|"You Win or You Die"]]
}}
</pre>
== Technical details ==
This template uses the [[w:Help:Lua|Lua templating language]], and more information can be found [[w:c:dev:Global_Lua_Modules/Quote|on the Global Lua Module page]]. '''For a traditional wikitext version of this template, see [[w:c:templates:Template:Quote|Quote on Templates Wiki]]'''.
<includeonly>[[Category:Quote templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
9257007bdd810476e8723e435841c3f133a204f2
Template:Disambiguation/doc
10
65
76
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
:Marks an article as a disambiguation page, adding a banner to the article and categorizing it under [[:Category:Disambiguations]].
;Syntax
:Add <code>{{t|disambiguation}}</code> at the top of a disambiguation page.
<includeonly>[[Category:Notice templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
c0a52d0ac40d9827b4462625985906e37c6f83c9
Template:MessageBox/doc
10
66
77
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
{{T|MessageBox}} is a template for creating message boxes.
It is highly customizable with classes, inline styles, and provided CSS selectors. Optional features such as an image, left border, right-side text (for e.g. shortcuts), and a dismiss function.
It uses the [[w:Help:Lua|Lua templating language]], and more information can be found [[w:c:dev:Global_Lua_Modules/Mbox|on the Global Lua Module page]]. This version is modified to produce a starter style, based on the [[w:c:dev:mediawiki:Global Lua Modules/Mbox.css|basic style from the module]]. To use the full capabilities of this module and remove the default styling, remove the indicated portions of [[Module:Mbox]].
'''For a traditional wikitext version of this template, see [[w:c:templates:Template:Ambox|Ambox on Templates Wiki]]'''.
==Parameters==
For examples of how to use these parameters, see [[#Examples]].
{| class="wikitable" style="width: 100%"
! Parameter name
! Description
! Required?
! Default
|-
| <code>class</code>
| Additional classes to the root <code>.mbox</code> element.
| No
| —
|-
| <code>bordercolor</code>
| The color of the thick left-most border.
| No
| Stylesheet default
|-
| <code>type</code>
| Type of mbox as declared as in CSS with variables. Affects color of the thick left-most border. See [[#Using types]].
| No
| —
|-
| <code>bgcolor</code>
| The color of the mbox's background.
| No
| Stylesheet default
|-
| <code>style</code>
| Additional inline styles to the root <code>.mbox</code> element.
| No
| —
|-
| <code>image</code>
| An image to be added to the left of all text content.
| No
| —
|-
| <code>imagewidth</code>
| The width of the image (height automatically adjusts).
| No
| <code>60px</code>
|-
| <code>imagelink</code>
| The link to which the image points (could link to the relevant maintenance category, per example). If not included, the image will be un-clickable.
| No
| —
|-
| <code>header</code>
| The header (bold text placed at the top). This is typically used to very briefly explain the subject of the mbox itself, as when the mbox is closed, only the header will show.
| No
| —
|-
| <code>text</code>
| Non-bold text placed below the header, typically used to explain the subject of the mbox in further or additional detail. When the mbox is closed, this text will be hidden.
| No
| —
|-
| <code>comment</code>
| Smaller non-bold text placed below the main text, typically used to add additional links or context about the notice. When the mbox is closed, this text will be hidden.
| No
| —
|-
| <code>aside</code>
| Text placed within a small allocation on the right side separated by a light gray border. Most commonly used to show shortcuts to the page in question (such as on policy pages). When the mbox is closed, this text will be hidden.
| No
| —
|-
| <code>id</code>
| By default, one close button will close all mboxes on the page. However, to change this, this parameter may be used, given as the name of the mbox implementation (e.g., "Template:Cleanup" would have <code><nowiki>|id=cleanup</nowiki></code>).
| No
| —
|-
| <code>collapsed</code>
| By default, the mbox will be uncollapsed, and the full contents will be shown. However, to change this, this parameter may be used to set an mbox as collapsed by default (e.g., <code><nowiki>|collapsed=true</nowiki></code> would set the mbox to be collapsed by default).
| No
| —
|}
==Design==
Some communities may wish to customize the appearance of the mboxes. The most common styling options are provided illustrated in CSS.
<syntaxhighlight lang="css" class="mw-collapsible mw-collapsed">
.mbox {
/* the background of the entire box */;
background-color: ;
/* the border color of the entire box */
border-color: ;
/* the border thickness of the entire box */
border-width: ;
/* the default thick left border color; note this can be changed from within the template implementations using the "color" parameter */
border-left-color: ;
/* the rounded-ness of the corners */;
border-radius: ;
/* the baseline font-size of the mbox */
font-size: ;
}
.mbox__content {
/* the padding inside the mbox */
padding: ;
}
.mbox__content__image {
/* the minimum width of the mbox's image (if bigger, use the "imagewidth" parameter in the template) */
width: ;
/* the spacing to the left of the text (i.e., the right of the image) */
padding-right: ;
}
.mbox__content__text__comment {
/* the size of the text in the "comment" parameter */
font-size: ;
}
.mbox__content__aside {
/* any particular modifications to the "aside" area can go here */
/* the maximum width of the aside area */
width: ;
}
.mbox__close {
/* the appearance of the close symbol here */
}
.mbox__close:after {
/* overwrite "content" here if you do not wish for the close symbol to be × */
content: '';
}
.mw-collapsed + .mbox__close {
/* modifications to the close symbol when the box is closed */
}
.mw-collapsed + .mbox__close:after {
/* overwrite "content" here if you do not wish for the close symbol to be + when the box is closed */
content: '';
}
</syntaxhighlight>
; Technical notes
* Additional inline styles to the root <code>.mbox</code> element can be achieved via the <code>style</code> parameter in the template.
== Examples ==
=== Basic MessageBox ===
<pre>
{{MessageBox
|header = Header text here
|text = Normal text here
|id = test1
}}</pre>
Produces:
{{#invoke:Mbox|main
|header = Header text here
|text = Normal text here
|id = test1
}}
=== Using types ===
To use types, CSS variables must be added, such as:
<syntaxhighlight lang="css">
:root {
--type-important: rgba(200, 0, 0, 0.8);
--type-moderate: rgba(233, 124, 47, 0.8);
--type-minor: rgba(241, 197, 37, 0.8);
}
</syntaxhighlight>
If added:
<pre>
{{MessageBox
|header = Header text here
|type = important
|text = Normal text here
|id = test2
}}</pre>
Produces:
{{#invoke:Mbox|main
|header = Header text here
|type = important
|text = Normal text here
|id = test2
}}
Depending on your styling, there may not be a visual difference in the above example.
=== With an image ===
<pre>
{{MessageBox
|header = Header text here
|text = Normal text here
|image = Wiki.png
|imagelink =
|imagewidth = 50px
|id = test3
}}</pre>
Produces:
{{#invoke:Mbox|main
|header = Header text here
|text = Normal text here
|image = Wiki.png
|imagelink =
|imagewidth = 50px
|id = test3
}}
=== With an aside ===
<pre>
{{MessageBox
|header = Header text here
|type = important
|text = Normal text here
|aside = Aside text here
|id = test4
}}</pre>
Produces:
{{#invoke:Mbox|main
|header = Header text here
|type = important
|text = Normal text here
|aside = Aside text here
|id = test4
}}
=== Standard/default style ===
<pre>
{{MessageBox
|header = Header text here
|text = Normal text here
|comment = Comment text here
|image = Wiki.png
|aside = Aside text here
|id = standard
}}</pre>
Produces:
{{#invoke:Mbox|main|header=Header text here |text=Normal text here |comment=Comment text here |image=Wiki.png |aside=Aside text here |id=standard}}
<includeonly>[[Category:Notice templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
ca7c12cf4c7d97a6a3a96c5adc07ee3ceaf78fda
Template:Dialogue/doc
10
67
78
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
{{t|Dialogue}} facilitates the writing of dialogue in a standard format. The template can handle most standard formats of writing dialogue, and can be indented, bulleted or numbered. '''This template ''cannot'' be <code>subst:</code>'d'''.
This template uses the [[w:Help:Lua|Lua templating language]], and more information can be found [[w:c:dev:Global_Lua_Modules/Dialogue|on the Global Lua Module page]]. '''For a traditional wikitext version of this template, see [[w:c:templates:Template:Dialogue/wikitext|Dialogue on Templates Wiki]]'''.
==Syntax==
This is how to write the template in [[w:Help:wikitext|wikitext]] onto your article:
<pre>{{dialogue
|short=full
|short=full
|short=full
...
|Character|Speech
|Character|Speech
|Character|Speech
...
|cite = dialogue description
}}</pre>
These parameters are explained more fully below.
==Parameters==
'''Named parameters specify name shortcuts. They are all optional.''' They are placed at the top of the template call, like this:
<pre>{{dialogue
|short=full
|short=full
|short=full
...</pre>
Name shortcuts apply to your main dialogue text. If you use a shortcut specified here for a character name, then the full name will be replaced for it.
Named parameters of the form "<code>mood1</code>", "<code>mood2</code>", "<code>mood3</code>", etc., up to "<code>mood10</code>", specify moods for the corresponding line number (e.g. "<code>mood1</code>" specifies line 1). They are placed in a line like this:
<pre>...
|Character|Speech|mood1=angry
|Character|Speech|mood2=quiet
|Character|Speech|mood3=ecstatic
...</pre>
Positional parameters form the text of the dialogue (i.e. any line not containing an "<code>=</code>" will be construed as part of the dialogue.
:;<code>Parameter 1</code> ''(required)'' : Character name speaking
:;<code>Parameter 2</code> ''(optional)'' : Line to speak
:;<code>Parameter 3</code> ''(optional)'' : Next character
:;<code>Parameter 4</code> ''(optional)'' : Next line
:;<code>Parameter 5</code> ''(optional)'' : Next character
:;<code>Parameter 6</code> ''(optional)'' : Next line
:;<code>Parameter 7</code> ''(optional)'' : so on...
Note: if any character is called "<code>action</code>" then that line will be construed as an action line. It still counts as a ''line'' nonetheless.
To write a dialogue description/source, use <code>cite =</code>
==Examples==
Here is an example of a full template usage:
<pre>{{dialogue
|harry=Harry Enfield
|bryan=Bryan Adams
|harry|Hello! |mood1=happy
|bryan|Oh hello there |mood2=surprised
|harry|How are you? |mood3=inquisitive
|bryan|Quite fine thank you. |mood4=reserved
|harry|Oh that's spiffing. |mood5=spiffed
|bryan|It is, isn't it?! |mood6=multo-spiffed
|harry|Quite so. |mood7=bored
|bryan|Well, I'm off! |mood8=joyous
|harry|Ta-ta! |mood9=relieved
|bryan|Au revoir! |mood10=sarcastic
}}</pre>
The above would generate:
{{dialogue
|harry=Harry Enfield
|bryan=Bryan Adams
|harry|Hello! |mood1=happy
|bryan|Oh hello there |mood2=surprised
|harry|How are you? |mood3=inquisitive
|bryan|Quite fine thank you. |mood4=reserved
|harry|Oh that's spiffing. |mood5=spiffed
|bryan|It is, isn't it?! |mood6=multo-spiffed
|harry|Quite so. |mood7=bored
|bryan|Well, I'm off! |mood8=joyous
|harry|Ta-ta! |mood9=relieved
|bryan|Au revoir! |mood10=sarcastic
}}
The below code demonstrates examples of extended use:
<pre>{{dialogue
|george=Georgie Boy
|rachel=Rachel
|action|Enter: George and Rachel
|george|Good morrow dearest Rachel!|mood2=happy
|action|Rachel turns to see him
|rachel|Oh, George, it's you!
|george|...
|rachel|Why won't you say anything?!|mood6=worried
|action|Enter: Guards
|Guards|We are announcing George's arrest!
|rachel|Oh my!|mood9=horrified
|action|George is dragged away.
}}</pre>
The above would generate:
{{dialogue
|george=Georgie Boy
|rachel=Rachel
|action|Enter: George and Rachel
|george|Good morrow dearest Rachel!|mood2=happy
|action|Rachel turns to see him
|rachel|Oh, George, it's you!
|george|...
|rachel|Why won't you say anything?!|mood6=worried
|action|Enter: Guards
|Guards|We are announcing George's arrest!
|rachel|Oh my!|mood9=horrified
|action|George is dragged away.
}}
===Notes===
You can number, bullet or indent your dialogue:
<pre>:{{dialogue|Me|Hello|You|Howdido!}}</pre>
:{{dialogue|Me|Hello|You|Howdido!}}
<pre>#{{dialogue|Me|Hello|You|Howdido!}}
#{{dialogue|Them|Good afternoon|Us|What a load of rubbish!}}</pre>
#{{dialogue|Me|Hello|You|Howdido!}}
#{{dialogue|Them|Good afternoon|Us|What a load of rubbish!}}
<pre>*{{dialogue
|angel=Fortitude
|angel|I am an angel!|Crowd|We don't believe you!}}
*{{dialogue
|angel=Fortitude
|angel|But I'm being quite serious!|Crowd|Too bad for you then!}}</pre>
*{{dialogue
|angel=Fortitude
|angel|I am an angel!|Crowd|We don't believe you!}}
*{{dialogue
|angel=Fortitude
|angel|But I'm being quite serious!|Crowd|Too bad for you then!}}
You will get the odd spacing error (e.g. "Speech<code><nowiki><space></nowiki></code>") if you lay out your dialogue on multiple lines.
<includeonly>[[Category:Quote templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
56b3a94f307db52b25c728122e451a63e806c791
Template:Namespace/doc
10
68
79
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
This is the {{t|Namespace}} meta-template. It helps other templates detect what type of page they are on.
It detects and groups all the different [[Wikipedia:Namespace#Enumeration|namespaces]] used on Fandom into several types:
; main : Main (i.e. article) space, where normal articles are kept.
; talk : Any talk space, including page names that start with "Talk:", "User talk:", "File talk:", etc.
;user
;file
;mediawiki
;template
;help
;category
: The remaining namespaces.
; other : Any namespaces that were not specified as a parameter to the template (see explanation below).
For backwards compatibility, this template handles '''image''' as if '''file'''. '''image''' (<nowiki>[[Image:...]]</nowiki>) is now deprecated.
'''Note:''' For most cases it may be better to use the simpler namespace detection templates (see the [[#See also|see also]] section below). This template is more prone to human errors such as misspelling parameter names.
This template uses the [[w:Help:Lua|Lua templating language]], and more information can be found [[w:c:dev:Global_Lua_Modules/Namespace_detect|on the Global Lua Module page]]. '''For a traditional wikitext version of this template, see [[w:c:templates:Template:Namespace_detect|Namespace_detect on Templates Wiki]]'''.
== Usage ==
This template takes one or more parameters named after the different page types as listed above. Like this:
<pre>
{{Namespace
| main = Article text
| talk = Talk page text
| other = Other pages text
}}
</pre>
If the template is on a main (article) page, it will return this:
: {{Namespace |demospace=main
| main = Article text
| talk = Talk page text
| other = Other pages text
}}
If the template is on any other page than an article or a talk page, it will return this:
: {{Namespace
| main = Article text
| talk = Talk page text
| other = Other pages text
}}
The example above made the template return something for all page types. But if we don't use the '''other''' parameter or leave it empty, it will not return anything for the other page types. Like this:
<pre>
{{Namespace
| file = File page text
| category = Category page text
| other =
}}
</pre>
On any pages other than file and category pages the code above will render nothing.
<!-- Do not remove this one. It is supposed to render nothing, but we have it here for testing purposes. -->
: {{Namespace
| file = File page text
| category = Category page text
| other =
}}
By using an empty parameter, you can make it so the template doesn't render anything for some specific page type. Like this:
<pre>
{{Namespace
| main =
| other = Other pages text
}}
</pre>
The code above will render nothing when on mainspace (article) pages, but will return this when on other pages:
: {{Namespace
| main =
| other = Other pages text
}}
== Demospace and page ==
For testing and demonstration purposes, this template can take two parameters named '''demospace''' and '''page'''.
'''demospace''' understands any of the page type names used by this template, including the '''other''' type. It tells the template to behave like it is on some specific type of page. Like this:
<pre>
{{Namespace
| main = Article text
| other = Other pages text
| demospace = main
}}
</pre>
No matter on what kind of page the code above is used, it will return this:
: {{Namespace
| main = Article text
| other = Other pages text
| demospace = main
}}
The '''page''' parameter instead takes a normal pagename, making this template behave exactly as if on that page. The pagename doesn't have to be an existing page. Like this:
<pre>
{{Namespace
| user = User page text
| other = Other pages text
| page = User:Example
}}
</pre>
No matter on what kind of page the code above is used, it will return this:
: {{Namespace
| user = User page text
| other = Other pages text
| page = User:Example
}}
It can be convenient to let your template understand the '''demospace''' and/or '''page''' parameter and send it on to the {{T|Namespace}} template. Like this:
<pre>
{{Namespace
| main = Article text
| other = Other pages text
| demospace = {{{demospace|}}}
| page = {{{page|}}}
}}
</pre>
If both the '''demospace''' and '''page''' parameters are empty or undefined, the template will detect page types as usual.
== Parameters ==
List of all parameters:
<pre>
{{Namespace
| main =
...
| other =
| demospace = {{{demospace|}}} / main / talk / user /
file / mediawiki / template /
help / category / other
| page = {{{page|}}} / User:Example
}}
</pre>
== Technical details ==
If you intend to feed tables as content to the numbered parameters of this template, you need to know this:
[[w:Help:Template|Templates]] have a problem handling parameter data that contains pipes "<code>|</code>" unless the pipe is inside another template <code><nowiki>{{name|param1}}</nowiki></code> or inside a piped link <code><nowiki>[[w:Help:Template|help]]</nowiki></code>. Thus templates can not handle [[w:Help:Table|wikitables]] as input unless you escape them by using the <code><nowiki>{{!}}</nowiki></code> [[w:Help:Magic words|magic word]]. This makes it hard to use wikitables as parameters to templates. Instead, the usual solution is to use HTML wikimarkup for the table code, which is more robust.
<includeonly>[[Category:General wiki templates]]{{#ifeq:{{SUBPAGENAME}}|sandbox|[[Category:Namespace manipulation templates]]}}</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
abd1a20286343a0c76ff9c575682bd5d011f5a6d
Module:Dialogue
828
69
80
2022-03-29T00:54:59Z
FANDOM
4
fixing broken help link
Scribunto
text/plain
-- This Module is used for making templates based in the Lua language.
-- See more details about Lua in [[w:Help:Lua]].
-- The Fandom Developer's Wiki hosts Global Lua Modules that can be imported and locally overridden.
-- The next line imports the Dialogue module from the [[w:c:dev:Global Lua Modules]].
local Dialogue = require('Dev:Dialogue')
-- See more details about this module at [[w:c:dev:Global_Lua_Modules/Dialogue]]
-- The last line produces the output for the template
return Dialogue
a147d7d4d5837eeb0910d21be2904bbae6658ad2
Module:Hatnote
828
70
81
2022-03-29T00:54:59Z
FANDOM
4
Scribunto
text/plain
-- This Module is used for making templates based in the Lua language.
-- See more details about Lua in [[w:Help:Lua]].
-- The Fandom Developer's Wiki hosts Global Lua Modules that can be imported and locally overridden.
-- The next line imports the Hatnote module from the [[w:c:dev:Global Lua Modules]].
local H = require('Dev:Hatnote')
-- See more details about this module at [[w:c:dev:Global_Lua_Modules/Hatnote]]
-- The last line produces the output for the template
return H
d52966e186d4771ee7844be7f402467c51644349
Module:Mbox
828
71
82
2022-03-29T00:54:59Z
FANDOM
4
Scribunto
text/plain
-- This Module is used for making templates based in the Lua language.
-- See more details about Lua in [[w:Help:Lua]].
-- The Fandom Developer's Wiki hosts Global Lua Modules that can be imported and locally overridden.
-- The next line imports the Mbox module from the [[w:c:dev:Global Lua Modules]].
local Mbox = require('Dev:Mbox')
-- See more details about this module at [[w:c:dev:Global_Lua_Modules/Mbox]]
-- The imported Module is overwritten locally to include default styling.
-- For a more flexible Mbox experience, delete the function below and import
-- https://dev.fandom.com/wiki/MediaWiki:Global_Lua_Modules/Mbox.css
-- or paste (and modify as you like) its contents in your wiki's
-- [[MediaWiki:Wikia.css]] (see [[w:Help:Including_additional_CSS_and_JS]])
-- or look at https://dev.fandom.com/wiki/Global_Lua_Modules/Mbox
-- for more customization inspiration
--
-- BEGIN DELETION HERE
--
local getArgs = require('Dev:Arguments').getArgs
local localCSS = mw.loadData('Module:Mbox/data').localStyle
function Mbox.main(frame)
local args = getArgs(frame)
-- styles
local styles = {}
if args.bordercolor then
styles['border-left-color'] = args.bordercolor
elseif args.type then
styles['border-left-color'] = 'var(--type-' .. args.type .. ')'
end
if args.bgcolor then
styles['background-color'] = args.bgcolor
end
-- images
local image = args.image or ''
local imagewidth = args.imagewidth or '80px'
local imagelink = ''
if args.imagelink then
imagelink = '|link=' .. args.imagelink
end
local imagewikitext = ('%sFile:%s|%s%s' .. ']]'):format('[[', image, imagewidth, imagelink)
-- id for closure
local id = args.id or 'mbox'
local container = mw.html.create('div')
:addClass('mbox')
:addClass(args.class)
:css(styles)
:css(localCSS['mbox'])
:cssText(args.style)
local content = container:tag('div')
:addClass('mbox__content')
:css(localCSS['mbox__content'])
if args.image then
local image = content:tag('div')
:addClass('mbox__content__image')
:addClass('mw-collapsible')
:attr('id', 'mw-customcollapsible-' .. id)
:css(localCSS['mbox__content__image'])
:wikitext(imagewikitext)
if args.collapsed then
image:addClass('mw-collapsed')
end
end
local contentwrapper = content:tag('div')
:addClass('mbox__content__wrapper')
:css(localCSS['mbox__content__wrapper'])
if args.header then
contentwrapper:tag('div')
:addClass('mbox__content__header')
:css(localCSS['mbox__content__header'])
:wikitext(args.header)
end
if args.text then
local text = contentwrapper:tag('div')
:addClass('mbox__content__text')
:addClass('mw-collapsible')
:attr('id', 'mw-customcollapsible-' .. id)
:css(localCSS['mbox__content__text'])
:wikitext(args.text)
if args.collapsed then
text:addClass('mw-collapsed')
end
if args.comment then
text:tag('div')
:addClass('mbox__content__text__comment')
:css(localCSS['mbox__content__text__comment'])
:wikitext(args.comment)
end
end
contentwrapper:tag('span')
:addClass('mbox__close')
:addClass('mw-customtoggle-' .. id)
:css(localCSS['mbox__close'])
:attr('title', 'Dismiss')
if args.aside then
local aside = content:tag('div')
:addClass('mbox__content__aside')
:addClass('mw-collapsible')
:attr('id', 'mw-customcollapsible-' .. id)
:css(localCSS['mbox__content__aside'])
:wikitext(args.aside)
if args.collapsed then
aside:addClass('mw-collapsed')
end
end
return container
end
--
-- END DELETION HERE
--
-- The last line produces the output for the template
return Mbox
1c196d668f9209faef3e9a78c1f082f1c8573042
Module:Mbox/data
828
72
83
2022-03-29T00:54:59Z
FANDOM
4
Scribunto
text/plain
local localStyle = {
['mbox'] = {
['display'] = 'flex',
['position'] = 'relative',
['border'] = '1px solid #d6d6d6',
['border-left-width'] = '8px',
['border-left-color'] = '#d6d6d6',
['border-radius'] = '3px',
['margin-bottom'] = '5px',
['min-height'] = '32px'
},
['mbox__content'] = {
['display'] = 'table',
['box-sizing'] = 'border-box',
['width'] = '100%',
['padding'] = '8px 15px'
},
['mbox__content__image'] = {
['display'] = 'table-cell',
['width'] = '40px',
['height'] = '100%',
['text-align'] = 'center',
['vertical-align'] = 'middle',
['padding-right'] = '15px'
},
['mbox__content__wrapper'] = {
['display'] = 'table-cell',
['vertical-align'] = 'middle'
},
['mbox__content__header'] = {
['display'] = 'block',
['font-weight'] = 'bold'
},
['mbox__content__text'] = {
['display'] = 'block'
},
['mbox__content__text__comment'] = {
['font-size'] = 'small'
},
['mbox__content__aside'] = {
['display'] = 'table-cell',
['width'] = '100px',
['vertical-align'] = 'middle',
['text-align'] = 'center',
['padding-left'] = '15px',
['border-left'] = '1px solid #d6d6d6'
},
['mbox__close'] = {
['position'] = 'absolute',
['right'] = '0',
['top'] = '0',
['padding'] = '2px 7px',
['font-weight'] = 'bold',
['font-size'] = '16px',
['color'] = '#bbb',
['cursor'] = 'pointer',
['transition'] = 'all .15s ease-in'
}
}
return { localStyle = localStyle }
7afdc5979e3b8bc8d21b52929058ba24c351dbdc
Module:Namespace detect
828
73
84
2022-03-29T00:54:59Z
FANDOM
4
fixing broken help link
Scribunto
text/plain
-- This Module is used for making templates based in the Lua language.
-- See more details about Lua in [[w:Help:Lua]].
-- The Fandom Developer's Wiki hosts Global Lua Modules that can be imported and locally overridden.
-- The next line imports the Namespace_detect module from the [[w:c:dev:Global Lua Modules]].
local NS = require('Dev:Namespace_detect')
-- Local configuration can be modified in
-- [[Module:Namespace detect/data]] and
-- [[Module:Namespace detect/config]]
-- See more details about this module at [[w:c:dev:Global_Lua_Modules/Namespace detect]]
-- The last line produces the output for the template
return NS
108c1bd4f38e4a0b40b9a85178a4d68cd557cef3
Module:Namespace detect/config
828
74
85
2022-03-29T00:54:59Z
FANDOM
4
fixing broken help link
Scribunto
text/plain
-- This Module is used for making templates based in the Lua language.
-- See more details about Lua in [[w:Help:Lua]].
-- The Fandom Developer's Wiki hosts Global Lua Modules that can be imported and locally overridden.
-- The next line imports from the [[w:c:dev:Global Lua Modules]].
local nsConfiguration = require('Dev:Namespace_detect/config')
-- See more details about this module at [[w:c:dev:Global_Lua_Modules/Namespace_detect]]
-- The imported Module is overwritten locally to include default configuration.
-- For a more flexible experience, delete the page import
-- and paste (and modify as you like) its contents into this page
-- https://dev.fandom.com/wiki/Module:Namespace_detect/config
-- The last line produces the output for the template
return nsConfiguration
22ca76ef47387cf20b5fcc7d1f14687f0b2da915
Module:Namespace detect/data
828
75
86
2022-03-29T00:54:59Z
FANDOM
4
fixing broken help link
Scribunto
text/plain
-- This Module is used for making templates based in the Lua language.
-- See more details about Lua in [[w:Help:Lua]].
-- The Fandom Developer's Wiki hosts Global Lua Modules that can be imported and locally overridden.
-- The next line imports from the [[w:c:dev:Global Lua Modules]].
local nsData = require('Dev:Namespace_detect/data')
-- See more details about this module at [[w:c:dev:Global_Lua_Modules/Namespace_detect]]
-- The imported Module is overwritten locally to include default configuration.
-- For a more flexible experience, delete the page import
-- and paste (and modify as you like) its contents into this page
-- https://dev.fandom.com/wiki/Module:Namespace_detect/data
-- The last line produces the output for the template
return nsData
4056c252664c31f05a9d54c48fcd865cdf41dd9f
Module:Navbox
828
76
87
2022-03-29T00:54:59Z
FANDOM
4
fixed broken help link
Scribunto
text/plain
-- This Module is used for making templates based in the Lua language.
-- See more details about Lua in [[w:Help:Lua]].
-- The Fandom Developer's Wiki hosts Global Lua Modules that can be imported and locally overridden.
-- The next line imports the Navbox module from the [[w:c:dev:Global Lua Modules]].
local N = require('Dev:Navbox')
-- See more details about this module at [[w:c:dev:Global_Lua_Modules/Navbox]]
-- The last line produces the output for the template
return N
7c5d05d6cc02dafdd64b46ca3fbdc3f808e53e5b
Module:Quote
828
77
88
2022-03-29T00:54:59Z
FANDOM
4
Scribunto
text/plain
-- This Module is used for making templates based in the Lua language.
-- See more details about Lua in [[w:Help:Lua]].
-- The Fandom Developer's Wiki hosts Global Lua Modules that can be imported and locally overridden.
-- The next line imports the Quote module from the [[w:c:dev:Global Lua Modules]].
local Quote = require('Dev:Quote')
-- See more details about this module at [[w:c:dev:Global_Lua_Modules/Quote]]
-- The last line produces the output for the template
return Quote
6918bf52f0c3bdbd83cc4611b6243a659e7d800b
Category:Disambiguations
14
78
89
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:{{SITENAME}}]]"
wikitext
text/x-wiki
[[Category:{{SITENAME}}]]
dd8aaa34cf600c1567d240a3f4bc615164a11592
Category:Quote templates
14
79
90
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:Templates]]"
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:Notice templates
14
80
91
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:Templates]]"
wikitext
text/x-wiki
[[Category:Templates]]
06eecdec29f6cb215c99cf216d1e3bdc8c30a95e
Category:Candidates for deletion
14
81
92
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
This category contains articles that have been marked as candidates for deletion with the {{T|Delete}} template.
'''Administrators, before deleting these pages''' make sure you check each page's discussion page, what links to each page, and the history of each page before proceeding with the deletion.
[[Category:Maintenance]]
a73d7b53cf0697a0682f842f1a71aafbe127aade
Template:=
10
82
93
2022-03-29T00:54:59Z
FANDOM
4
Created page with "<includeonly>=</includeonly><noinclude> {{documentation}}<noinclude>"
wikitext
text/x-wiki
<includeonly>=</includeonly><noinclude>
{{documentation}}<noinclude>
8f9d55b93874a691b84a9b6acb54bc6dd01fbf39
Template:=/doc
10
83
94
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
:This template is used when escaping <code>=</code> when contained in [[w:Help:Parser functions|Parser functions]].
;This template cannot be substituted.
;Syntax
:Insert this template using <code>{{t|{{=}}}}</code>
<includeonly>[[Category:General wiki templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
ce8f267527b35c852e8190c38416584783aa37ac
Template:Clear
10
84
95
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly><div style="clear:{{{1|both}}}"></div></includeonly><noinclude>
{{documentation}}</noinclude>
02f4c0e17d50c41f902cad74e6d937f585ba4719
Template:Cols
10
85
96
2022-03-29T00:54:59Z
FANDOM
4
Modern and supported browsers no longer need vendor-specific prefixes for column-count
wikitext
text/x-wiki
<includeonly><div style="column-count: {{{1}}};">{{{2}}}</div></includeonly><noinclude>
{{documentation}}</noinclude>
7e455c29d8571535f2a7692bcd711e2d0547441c
Template:Space
10
86
97
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly> </includeonly><noinclude>
{{documentation}}</noinclude>
e1c3d6d869303e7cc9d8a997c69b01995b7e4928
Template:Tocright
10
87
98
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly><div style="float:right; clear:{{{clear|right}}}; margin-bottom:.5em; padding:.5em 0 .8em 1.4em; background:transparent; max-width:20em;">__TOC__</div></includeonly><noinclude>
{{documentation}}</noinclude>
e05836955bb88801d044130d69154745f45c7642
Template:Trim
10
88
99
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly>{{#if:{{{1|}}}|{{{1}}}|}}</includeonly><noinclude>
{{documentation}}</noinclude>
21c7177ac37ea769b22ca26a2493df055a56f87a
Template:Cols/doc
10
89
100
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
This template formats the text into the specified number of columns.
;Syntax
<pre>{{cols|<# of columns>|<content>}}</pre>
Especially useful to wrap long lists of items into multiple columns.
<includeonly>[[Category:General wiki templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
763fc74c9235663a500bcc69a50d425c77c16cb0
Template:Space/doc
10
90
101
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
This template allows you to force a space in areas that strip whitespace.
<includeonly>[[Category:General wiki templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
e361d3f5c2ca3c7d7503d9bb0d311e9d440c3cc2
Template:Tocright/doc
10
91
102
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
{{t|tocright}} forces the auto-generated Table of Contents for an article to appear floated to the right side of the page, in order to improve article layout.
<includeonly>[[Category:General wiki templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
1449f71ce473315e9f2ad72064ee5c76ed00c89d
Template:Trim/doc
10
92
103
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
This template trims whitespace from the beginning and end of the supplied value. It works by using the simple hack of filtering it through the <code>#if</code> parser function.
;Syntax
<nowiki>{{trim| value }}</nowiki>
<includeonly>[[Category:General wiki templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
f1f126e3f6fe8474d693ec499d71a9c4067043f9
Template:Clear/doc
10
93
104
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
This template allows you to clear the left side, right side, or both sides of the page. Clearing means that the content following the template will not be displayed until the existing content on the specified sides (for example, "hanging" or floating images or blocks) is displayed completely. This template is often used so that the text does not flow around unrelated images.
The template adds the following code to the page: <code><nowiki><div style="clear:left/right/both;"></div></nowiki></code> (the value after <code>clear</code> depends on the parameters). This code affects elements with the CSS property <code>float</code>, including files floated to the side (for example, <code><nowiki>[[File:Image.png|right]]</nowiki></code>).
;Syntax
* To clear both sides of the page, add the code {{t|Clear}}.
* To clear only the left side of the page, add the code {{t|Clear|left}}.
* To clear only the right side of the page, add the code {{t|Clear|right}}.
You can also use {{t|-}} instead of {{t|Clear}} as a shorthand call for this template.
__NOTOC__
;Example
<pre style="display:table">
=== Section 1 ===
[[File:Example.jpg|200px|right]]
Section 1 text.
=== Section 2 ===
Section 2 text.
{{Clear|right}}
=== Section 3 ===
Section 3 text.
</pre>
This code produces the following result:
----
=== Section 1 ===
[[File:Example.jpg|200px|right]]
Section 1 text.
=== Section 2 ===
Section 2 text.
{{Clear|right}}
=== Section 3 ===
Section 3 text.
----
As you can see above, the example image added in section 1 is displayed to the right and extends down through section 2, while the {{t|Clear}} template is called at the end of the second section, resulting in the example image not being next to section 3. Thus, one use of the {{t|Clear}} template is to control which elements are displayed next to which other elements.
== See also ==
* [https://developer.mozilla.org/en-US/docs/Web/CSS/clear CSS property <code>clear</code> on MDN]
* [https://developer.mozilla.org/en-US/docs/Web/CSS/float CSS property <code>float</code> on MDN]
<includeonly>[[Category:General wiki templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
23cbf4a368710af74b5a7e729c6a7205939cd5de
File:Example.jpg
6
94
105
2022-03-29T00:54:59Z
FANDOM
4
{{PD}}
[[Category:Images]]
wikitext
text/x-wiki
== Summary ==
{{PD}}
[[Category:Images]]
b45ad4275ad2f01c536d8fee443ea7264309586b
Category:Images
14
95
106
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:Media]]"
wikitext
text/x-wiki
[[Category:Media]]
b141d2b9971d6efe9f59bd03449781e71411c631
Category:Media
14
96
107
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:{{SITENAME}}]]"
wikitext
text/x-wiki
[[Category:{{SITENAME}}]]
dd8aaa34cf600c1567d240a3f4bc615164a11592
Template:Game
10
97
108
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly><infobox>
<title source="title">
<default>{{PAGENAME}}</default>
</title>
<image source="image">
<caption source="caption"/>
</image>
<data source="developer"><label>Developer</label></data>
<data source="publisher"><label>Publisher</label></data>
<data source="engine"><label>Engine</label></data>
<data source="version"><label>Version</label></data>
<data source="platform"><label>Platform</label></data>
<data source="releasedate"><label>Release date</label></data>
<data source="genre"><label>Genre</label></data>
<data source="mode"><label>Mode</label></data>
<data source="rating"><label>Rating</label></data>
<data source="media"><label>Media</label></data>
<group collapse="open">
<header>System requirements</header>
<data source="requirements"></data>
</group>
</infobox></includeonly><noinclude>{{Documentation}}</noinclude>
632ebe6f3e8bab75f012f57996157e6b71f04c2c
Template:Game/doc
10
98
109
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>{{Game
| title = The game's name, displayed on top of the infobox
| image = [e.g. "Example.jpg"]
| developer =
| publisher =
| engine = The engine the game runs on
| version = Most recently released version of the game. If your wiki does patch notes, you may wish to link to those.
| platform = Platform(s) the game is available on
| releasedate = When the game released
| genre = Genre(s) the game is classified as
| mode = Singeplayer, multiplayer, etc.
| rating = ESRB / PEGI, etc. ratings
| media = What media the game is available on (digital, cartridge, cd, etc.)
| requirements = System requirements
}}</pre>
== Sample output ==
{{Game
| title = The Game of Flower
| image = Example.jpg
| developer =
| publisher =
| engine =
| version =
| platform = PC
| releasedate = Soon
| genre = RPG
| mode = Single player
| rating =
| media =
| requirements = Cutting edge hardware
}}
<pre>{{Game
| title = The Game of Flower
| image = Example.jpg
| developer =
| publisher =
| engine =
| version =
| platform = PC
| releasedate = Soon
| genre = RPG
| mode = Single player
| rating =
| media =
| requirements = Cutting edge hardware
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
f43ae1af35184ba75281f54d6c3683a202f5fd69
Template:LicenseBox
10
99
110
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly><div style="border-collapse: collapse; border-color: #d6d6d6; border-radius: 3px; border-style: solid; border-left-width: 8px; border-bottom-width: 1px; border-right-width: 1px; border-top-width: 1px; display: flex; margin: 0 auto 5px auto; min-height: 32px; padding: 0.25em 0.5em; {{{style|}}}" class="article-table plainlinks {{{class|}}}">
{{#if:{{{image|}}} | <span style="padding: 2px 0px 2px 0.5em; text-align: center; width: 60px;">[[File:{{{image}}}{{!}}48px{!}}alt{{=}}]]</span>}}
{{{text|''Your license text is not specified''}}}
</div></includeonly><noinclude>
{{documentation}}</noinclude>
069ed63c4b14e0275262b6d3e8d9e91ecba49744
Template:LicenseBox/doc
10
100
111
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
;Description
:This template is used to create the box used by the various image license templates. The default styling is currently geared to a light-themed wiki. If your wiki has a dark theme and this template is too bright relative to the other elements on your wiki, simply change the following style parameters:
:<code>background-color:</code> This is the color of the background and is currently set to: <code>#fefefe</code>
:<code>border-color:</code> This is the color of the borders and is currently set to: <code>#d6d6d6</code>
:<code>color:</code> This is the color of the text and is currently set to: <code>#333</code>
;Syntax
:Type <code>{{t|LicenseBox|text{{=}}License text}}</code> on the image information page.
<includeonly>[[Category:Image license templates| ]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
9ec2738036e3818826b937975731274577856c0d
Template:-
10
101
112
2022-03-29T00:54:59Z
FANDOM
4
Redirected page to [[Template:Clear]]
wikitext
text/x-wiki
#REDIRECT [[Template:Clear]]
1a2aa4a9ba7478e54a2b21cbce68887ea297ea86
Template:Stub
10
102
113
2022-03-29T00:54:59Z
FANDOM
4
Created page with "{{MessageBox |header = Stub |type = stub |text = ''This article is a [[:Category:Stubs|stub]]. You can help {{SITENAME}} by [{{fullurl:{{FULLPAGENAME}}|action=edit}}..."
wikitext
text/x-wiki
{{MessageBox
|header = Stub
|type = stub
|text = ''This article is a [[:Category:Stubs|stub]]. You can help {{SITENAME}} by [{{fullurl:{{FULLPAGENAME}}|action=edit}} expanding it].''
|comment =
|class = notice hidden plainlinks
|id = stub
}}<includeonly>[[Category:Stubs]]</includeonly><noinclude>
{{Documentation}}</noinclude>
613ef53fa1801107adb93e3c0eb28209ba253a26
Category:Stubs
14
103
114
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
This category contains articles that are incomplete and are tagged with the {{T|Stub}} template.
[[Category:Maintenance]]
0ec95b0d8542e012132ff79db688797e78439093
Template:Stub/doc
10
104
115
2022-03-29T00:54:59Z
FANDOM
4
Created page with " ;Description :This template is used to identify a stub. Any pages using this template will be automatically placed in the [[:Category:Stubs|Stubs]] category. <includeonl..."
wikitext
text/x-wiki
;Description
:This template is used to identify a stub. Any pages using this template will be automatically placed in the [[:Category:Stubs|Stubs]] category.
<includeonly>[[Category:Notice templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
fe9e5e7f5e645666194f69dc88d7d12b5429e8f8
Template:MIT
10
105
116
2022-03-29T00:54:59Z
FANDOM
4
Created page with "{{LicenseBox|text=''This work is licensed under the [https://opensource.org/licenses/MIT MIT License].''}}{{#ifeq: {{NAMESPACENUMBER}} | 0 | <includeonly>Category:MIT licens..."
wikitext
text/x-wiki
{{LicenseBox|text=''This work is licensed under the [https://opensource.org/licenses/MIT MIT License].''}}{{#ifeq: {{NAMESPACENUMBER}} | 0 | <includeonly>[[Category:MIT license files]]</includeonly>}}<noinclude>
{{documentation}}</noinclude>
fa53e460d1a0d2cfb9e350fa64292cc428aed859
Template:LGPL
10
106
117
2022-03-29T00:54:59Z
FANDOM
4
Created page with " {{LicenseBox|text=''This work is licensed under the [https://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License].''}}{{#ifeq: {{NAMESPACENUMBER}} | 0 | <incl..."
wikitext
text/x-wiki
{{LicenseBox|text=''This work is licensed under the [https://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License].''}}{{#ifeq: {{NAMESPACENUMBER}} | 0 | <includeonly>[[Category:LGPL files]]</includeonly>}}<noinclude>
{{documentation}}</noinclude>
066b54eb9300540d46a07b5148865821bd3b2f08
Template:GFDL
10
107
118
2022-03-29T00:54:59Z
FANDOM
4
Created page with " {{LicenseBox|text=''This file is licensed under the GFDL. Permission is granted to copy, distribute and/or modify this image under the terms of the '''Wikipedia:Text of th..."
wikitext
text/x-wiki
{{LicenseBox|text=''This file is licensed under the GFDL. Permission is granted to copy, distribute and/or modify this image under the terms of the '''[[Wikipedia:Text of the GNU Free Documentation License|GNU Free Documentation License]]''', Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.''}}{{#ifeq: {{NAMESPACENUMBER}} | 0 | <includeonly>[[Category:GFDL files]]</includeonly>}}<noinclude>
{{documentation}}</noinclude>
b3c309cd585718bb7808409474f98a1c5ec46103
Template:MIT/doc
10
108
119
2022-03-29T00:54:59Z
FANDOM
4
Created page with ";Description :This template is used to mark images using the MIT license. ;Syntax :Type <code>{{t|MIT}}</code> on the image information page. <includeonly>Category:Ima..."
wikitext
text/x-wiki
;Description
:This template is used to mark images using the MIT license.
;Syntax
:Type <code>{{t|MIT}}</code> on the image information page.
<includeonly>[[Category:Image license templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
f243f408a7cb3acce5635655a2648b3dcd892584
Template:LGPL/doc
10
109
120
2022-03-29T00:54:59Z
FANDOM
4
Created page with ";Description :This template is used to mark images using the LGPL. ;Syntax :Type <code>{{t|LGPL}}</code> on the image information page. <includeonly>Category:Image lic..."
wikitext
text/x-wiki
;Description
:This template is used to mark images using the LGPL.
;Syntax
:Type <code>{{t|LGPL}}</code> on the image information page.
<includeonly>[[Category:Image license templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
a1352dd235ba24762d42130c24a5a7971e1cdd31
Template:GFDL/doc
10
110
121
2022-03-29T00:54:59Z
FANDOM
4
Created page with ";Description :This template is used to mark images using the GFDL. ;Syntax :Type <code>{{t|GFDL}}</code> on the image information page. <includeonly>Category:Image lic..."
wikitext
text/x-wiki
;Description
:This template is used to mark images using the GFDL.
;Syntax
:Type <code>{{t|GFDL}}</code> on the image information page.
<includeonly>[[Category:Image license templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
cb8fb84dfc8e1d8b8544fdff7530dce231764a63
Template:Nolicense
10
111
122
2022-03-29T00:54:59Z
FANDOM
4
Created page with "{{LicenseBox|text=''This file does not have information on its copyright status.''}}{{#ifeq: {{NAMESPACENUMBER}} | 0 | <includeonly>[[Category:Unattributed files]]</includeonl..."
wikitext
text/x-wiki
{{LicenseBox|text=''This file does not have information on its copyright status.''}}{{#ifeq: {{NAMESPACENUMBER}} | 0 | <includeonly>[[Category:Unattributed files]]</includeonly>}}<noinclude>
{{documentation}}</noinclude>
a99128c5d8a0cd0723b13b6d9e5fd78b18dbedec
Category:Unattributed files
14
112
123
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
__EXPECTUNUSEDCATEGORY__
The files in this category do not have an appropriate license selected and are tagged with the {{t|nolicense}} template.
Administrators should review files in this category and either:
* Update the file page with an appropriate if one can be easily determined.
* Delete the image, though it is good idea to give the uploader a chance to select a license first.
[[Category:Images]]
[[Category:Maintenance]]
fe16ed203269a56dcbf8a76f72943484fe67047f
Template:Nolicense/doc
10
113
124
2022-03-29T00:54:59Z
FANDOM
4
Created page with ";Description :This template is used to mark images where the copyright status is not known. It automatically adds the images to the :Category:Unattributed files|Unattribute..."
wikitext
text/x-wiki
;Description
:This template is used to mark images where the copyright status is not known. It automatically adds the images to the [[:Category:Unattributed files|Unattributed files]] category for later maintenance
;Syntax
:Type <code>{{t|Nolicense}}</code> on the image information page.
<includeonly>[[Category:Image license templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
346dcb940ca838c854f75f3db5229b97cce87d40
File:Favicon.ico
6
114
125
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
== Licensing ==
{{CC-BY-SA}}
[[Category:Wiki skin images]]
4d9dc3162be921e39ea7166659dae4b8fe461b71
Category:Hatnote templates with errors
14
115
126
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:Maintenance]]"
wikitext
text/x-wiki
[[Category:Maintenance]]
a106a39e26c77e7b2ec90cb83728a6446cb6a1a1
Module:Mbox/doc
828
116
127
2022-03-29T00:54:59Z
FANDOM
4
getting rid of a red link for the documentation
wikitext
text/x-wiki
This module is used by most of the basic [[:Category:Notice templates|Notice templates]] and is invoked by {{t|MessageBox}}.
f4a47833d87441e40c6613bb641eb72f6207cbb1
Module:Mbox/data/doc
828
117
128
2022-03-29T00:54:59Z
FANDOM
4
to get rid of a red link for documentation
wikitext
text/x-wiki
This is a sub-module of [[Module:Mbox]] and is used to specify the CSS properties for message boxes.
fcd42c844d485c7da3317a85c9521ea96145cb35
Module:Quote/doc
828
118
129
2022-03-29T00:54:59Z
FANDOM
4
to get rid of the red link for the documentation
wikitext
text/x-wiki
This module is used by most of the basic [[:Category:Quote templates|Quote templates]] and is invoked by {{t|Quote}}.
665dce984d14e47c31477a42382fecb536de1da7
Module:Dialogue/doc
828
119
130
2022-03-29T00:54:59Z
FANDOM
4
getting rid of red links
wikitext
text/x-wiki
This module is invoked by the {{t|Dialogue}} template.
d22c926bd1a5c2221b42dc1a05b2326ecaaa6712
Module:Hatnote/doc
828
120
131
2022-03-29T00:54:59Z
FANDOM
4
getting rid of red links
wikitext
text/x-wiki
This module is invoked by the {{t|Hatnote}} template, which is used by a number of [[:Category:Notice templates|Notice templates]].
b5c1fc43f0f6bd96416f2fec21a7da0b34ae8aac
Module:Navbox/doc
828
121
132
2022-03-29T00:54:59Z
FANDOM
4
getting rid of red links
wikitext
text/x-wiki
This module is invoked by the {{t|Navbox}} template. Navbox templates are not displayed for mobile users.
23d4ed4b22c8bf7316431e1f6df6d4d5d9de1ef5
Module:Namespace detect/doc
828
122
133
2022-03-29T00:54:59Z
FANDOM
4
getting rid of red links
wikitext
text/x-wiki
This module is invoked by the {{t|Namespace}} template.
157d889ae2f345f719a68f459ee2ca550d14afb5
Module:Namespace detect/data/doc
828
123
134
2022-03-29T00:54:59Z
FANDOM
4
Created page with "This module holds data for [[Module:Namespace detect]] to be loaded per page, rather than per #invoke, for performance reasons."
wikitext
text/x-wiki
This module holds data for [[Module:Namespace detect]] to be loaded per page, rather than per #invoke, for performance reasons.
4b5f88c95a81f026633adaae2556eeaa2896fd6f
Module:Namespace detect/config/doc
828
124
135
2022-03-29T00:54:59Z
FANDOM
4
Created page with "This module stores configuration data for Module:Namespace detect. Here you can localise the module to your wiki's language. To activate a configuration item, you need to u..."
wikitext
text/x-wiki
This module stores configuration data for Module:Namespace detect. Here you can localise the module to your wiki's language.
To activate a configuration item, you need to uncomment it. This means that you need to remove the text "-- " at the start of the line.
5b3ec654956a66588b67fedc310584e2769e6f5c
Template:Series
10
125
136
2022-03-29T00:54:59Z
FANDOM
4
Created page with "<includeonly><infobox> <title source="title"><default>'' {{#explode:{{PAGENAME}}|(}} ''</default></title> <image source="image"><caption source="caption" /></image> <dat..."
wikitext
text/x-wiki
<includeonly><infobox>
<title source="title"><default>'' {{#explode:{{PAGENAME}}|(}} ''</default></title>
<image source="image"><caption source="caption" /></image>
<data source="release"><label>First released</label></data>
<data source="seasons"><label>Seasons</label></data>
<data source="episodes"><label>Episodes</label></data>
<data source="runtime"><label>Run time</label></data>
<data source="genre"><label>Genre</label></data>
<data source="network"><label>Network</label></data>
<data source="distrib"><label>Distributor</label></data>
<data source="creator"><label>Created by</label></data>
<data source="writer"><label>Written by</label></data>
<data source="director"><label>Directed by</label></data>
<data source="composer"><label>Composer</label></data>
<data source="based on"><label>Based on</label></data>
<data source="exec prod"><label>Executive producer</label></data>
<data source="producer"><label>Producer</label></data>
<data source="prod co"><label>Production company</label></data>
<data source="country"><label>Country</label></data>
<data source="language"><label>Language</label></data>
</infobox></includeonly><noinclude>{{documentation}}</noinclude>
f2e00daecd3f3df5c31267e0a9ffd721ac2f186d
Template:Series/doc
10
126
137
2022-03-29T00:54:59Z
FANDOM
4
Created page with "== Description == To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobo..."
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>
{{Series
| title =
| image =
| caption =
| release =
| seasons =
| episodes =
| runtime =
| genre =
| network =
| distrib =
| creator =
| writer =
| director =
| composer =
| based on =
| exec prod =
| producer =
| prod co =
| country =
| language =
}}</pre>
== Sample output ==
{{Series
| title = ''Default page title''
| image = Wiki.png
| caption = Test
| release = Test
| seasons = Test
| episodes = Test
| runtime = Test
| genre = Test
| network = Test
| distrib = Test
| creator = Test
| writer = Test
| director = Test
| composer = Test
| based on = Test
| exec prod = Test
| producer = Test
| prod co = Test
| country = Test
| language = Test
}}
<pre>{{Series
| title = ''Default page title''
| image = Wiki.png
| caption = Test
| release = Test
| seasons = Test
| episodes = Test
| runtime = Test
| genre = Test
| network = Test
| distrib = Test
| creator = Test
| writer = Test
| director = Test
| composer = Test
| based on = Test
| exec prod = Test
| producer = Test
| prod co = Test
| country = Test
| language = Test
}}</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
7f9a7daecb805234290cd4addefc0c049fe125ce
Template:Film
10
127
138
2022-03-29T00:54:59Z
FANDOM
4
Created page with "<includeonly><infobox> <title source="title"><default>'' {{#explode:{{PAGENAME}}|(}} ''</default></title> <image source="image"><caption source="caption"/></image> <g..."
wikitext
text/x-wiki
<includeonly><infobox>
<title source="title"><default>'' {{#explode:{{PAGENAME}}|(}} ''</default></title>
<image source="image"><caption source="caption"/></image>
<group>
<data source="premiere"><label>Premiere date</label></data>
<data source="genre"><label>Genre</label></data>
<data source="rating"><label>Rating</label></data>
<data source="runtime"><label>Runtime</label></data>
<data source="director"><label>Directed by</label></data>
<data source="writer"><label>Written by</label></data>
<data source="music"><label>Music by</label></data>
<data source="producer"><label>Produced by</label></data>
<data source="budget"><label>Budget</label></data>
<data source="earned"><label>Box Office</label></data>
</group>
<group layout="horizontal">
<header>Series</header>
<data source="previous"><label>← Previous</label></data>
<data source="next"><label>Next →</label></data>
</group>
</infobox>{{Namespace|main=[[Category:Films]]}}</includeonly><noinclude>{{documentation}}</noinclude>
92b5337f22ec52309cba873beaf3cdb11d2f64e0
Template:Film/doc
10
128
139
2022-03-29T00:54:59Z
FANDOM
4
Created page with "== Description == To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobo..."
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>
{{Film
| title =
| image =
| caption =
| premiere =
| genre =
| rating =
| runtime =
| director =
| writer =
| music =
| producer =
| budget =
| earned =
| previous =
| next =
}}
</pre>
== Sample output ==
{{Film
| title = This is a test
| image = Wiki.png
| caption = This is a test
| premiere = This is a test
| genre = This is a test
| rating = This is a test
| runtime = This is a test
| director = This is a test
| writer = This is a test
| music = This is a test
| producer = This is a test
| budget = This is a test
| earned = This is a test
| previous = This is a test
| next = This is a test
}}
<pre>
{{Film
| title = This is a test
| image = Wiki.png
| caption = This is a test
| premiere = This is a test
| genre = This is a test
| rating = This is a test
| runtime = This is a test
| director = This is a test
| writer = This is a test
| music = This is a test
| producer = This is a test
| budget = This is a test
| earned = This is a test
| previous = This is a test
| next = This is a test
}}
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
b085f97e35a2ac96b5ddf92a22e98fbd93933736
Template:Season
10
129
140
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly><infobox type="Season">
<title source="title"><default>{{PAGENAME}}</default></title>
<image source="image"><caption source="caption"/></image>
<data source="season"><label>Season</label></data>
<data source="episodes"><label>Episodes</label></data>
<data source="premiere"><label>Premiered</label></data>
<group layout="horizontal">
<header>Navigation</header>
<data source="previous"><label>← Previous</label></data>
<data source="next"><label>Next →</label></data>
</group>
</infobox>{{#ifeq: {{NAMESPACENUMBER}} | 0 | [[Category:Seasons]]}}</includeonly><noinclude>{{documentation}}</noinclude>
2e09c5f43c99d98363971b63ad639874c5e6c452
Template:Season/doc
10
130
141
2022-03-29T00:54:59Z
FANDOM
4
Created page with "== Description == To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobo..."
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>
{{Season
| title =
| image =
| caption =
| season =
| episodes =
| premiere =
| previous =
| next =
}}
</pre>
== Sample output ==
{{Season
| title = This is a test
| image = Wiki.png
| caption = This is a test
| season = This is a test
| episodes = This is a test
| premiere = This is a test
| previous = This is a test
| next = This is a test
}}
<pre>
{{Season
| title = This is a test
| image = Wiki.png
| caption = This is a test
| season = This is a test
| episodes = This is a test
| premiere = This is a test
| previous = This is a test
| next = This is a test
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
b3f82f2223cf6f8323820bce6de5427e4b6a1380
Template:Cast
10
131
142
2022-03-29T00:54:59Z
FANDOM
4
Created page with "<includeonly><infobox> <title source="name"><default>{{PAGENAME}}</default></title> <image source="image"><caption source="caption" /></image> <data><label>Born..."
wikitext
text/x-wiki
<includeonly><infobox>
<title source="name"><default>{{PAGENAME}}</default></title>
<image source="image"><caption source="caption" /></image>
<data><label>Born</label>
<default>{{#if: {{{birthname|}}} | {{{birthname|}}} }}{{#if: {{{birthdate|}}} | {{#if: {{{birthname|}}} | <br />}}{{{birthdate|}}}{{#if: {{{birthplace|}}} | <br />}} }}{{#if: {{{birthplace|}}} | {{#if: {{{birthdate|}}} || {{#if: {{{birthname|}}}|<br />}} }}{{{birthplace|}}} }}</default>
</data>
<data><label>Died</label>
<default>{{#if: {{{deathdate|}}} | {{{deathdate|}}} }}{{#if: {{{deathplace|}}} | {{#if: {{{deathdate|}}} | <br />}}{{{deathplace|}}} }}</default>
</data>
<data source="gender"><label>Gender</label></data>
<data source="height"><label>Height</label></data>
<data source="occupation"><label>Occupation</label></data>
<data source="appears in"><label>Appears in</label></data>
<data source="portrays"><label>Portrays</label></data>
</infobox>{{Namespace|main=[[Category:Cast]]<!--
-->{{#if: {{#pos:{{{appears in|}}} | TITLE}} | [[Category:TITLE cast]] }}<!--
-->}}</includeonly><noinclude>{{documentation}}</noinclude>
b1e4767be7d53e599ae3ac18e9f41dff90fdfe89
Template:Cast/doc
10
132
143
2022-03-29T00:54:59Z
FANDOM
4
Created page with "== Description == To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobo..."
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>
{{Cast
| name =
| image =
| caption =
| birthname =
| birthdate =
| birthplace =
| deathdate =
| deathplace =
| gender =
| height =
| occupation =
| appears in =
| portrays =
}}
</pre>
== Sample output ==
{{Cast
| name = Test
| image = Wiki.png
| caption = Test
| birthname = Name
| birthdate = Date
| birthplace = Place
| deathdate = Date
| deathplace = Place
| gender = Test
| height = Test
| occupation = Test
| appears in = Test
| portrays = Test
}}
<pre>
{{Cast
| name = Test
| image = Wiki.png
| caption = Test
| birthname = Name
| birthdate = Date
| birthplace = Place
| deathdate = Date
| deathplace = Place
| gender = Test
| height = Test
| occupation = Test
| appears in = Test
| portrays = Test
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
fea3e74e01ad2f66bb54f921f82426cb1a7fa748
Template:Cite web
10
133
144
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
<includeonly>{{
#if: {{#if: {{{url|}}} | {{#if: {{{title|}}} |1}}}}
||Error on call to [[Template:cite web]]: Parameters '''url''' and '''title''' must be specified
}}{{
#if: {{{archiveurl|}}}{{{archivedate|}}}
| {{#if: {{#if: {{{archiveurl|}}}| {{#if: {{{archivedate|}}} |1}}}}
||Error on call to [[template:cite web]]: Parameters '''archiveurl''' and '''archivedate''' must be both specified or both omitted
}}
}}{{#if: {{{author|}}}{{{last|}}}
| {{#if: {{{authorlink|}}}
| [[{{{authorlink}}}|{{#if: {{{last|}}}
| {{{last}}}{{#if: {{{first|}}} | , {{{first}}} }}
| {{{author}}}
}}]]
| {{#if: {{{last|}}}
| {{{last}}}{{#if: {{{first|}}} | , {{{first}}} }}
| {{{author}}}
}}
}}
}}{{#if: {{{author|}}}{{{last|}}}
| {{#if: {{{coauthors|}}}| <nowiki>;</nowiki> {{{coauthors}}} }}
}}{{#if: {{{author|}}}{{{last|}}}|
{{#if: {{{date|}}}
|  ({{{date}}})
| {{#if: {{{year|}}}
| {{#if: {{{month|}}}
|  ({{{month}}} {{{year}}})
|  ({{{year}}})
}}
}}
|}}
}}{{#if: {{{last|}}}{{{author|}}}
| . }}{{
#if: {{{editor|}}}
|  {{{editor}}}:
}}{{#if: {{{archiveurl|}}}
| {{#if: {{{archiveurl|}}} | {{#if: {{{title|}}} | [{{{archiveurl}}} {{{title}}}] }}}}
| {{#if: {{{url|}}} | {{#if: {{{title|}}} | [{{{url}}} {{{title}}}] }}}}
}}{{#if: {{{language|}}} |  <span style="font-size: 0.95em; font-weight: bold; color:#555; position: relative;">({{{language}}})</span>
}}{{#if: {{{format|}}}
|  ({{{format|}}})
}}{{#if: {{{work|}}}
| . ''{{{work}}}''
}}{{#if: {{{pages|}}}
|  {{{pages}}}
}}{{#if: {{{publisher|}}}
| . {{{publisher}}}{{#if: {{{author|}}}{{{last|}}}
|
| {{#if: {{{date|}}}{{{year|}}}{{{month|}}} || }}
}}
}}{{#if: {{{author|}}}{{{last|}}}
||{{#if: {{{date|}}}
|  ({{{date}}})
| {{#if: {{{year|}}}
| {{#if: {{{month|}}}
|  ({{{month}}} {{{year}}})
|  ({{{year}}})
}}
}}
}}
}}.{{#if: {{{archivedate|}}}
|  Archived from [{{{url}}} the original] on {{#time:F j, Y|{{{archivedate}}}}}{{#if: {{{archiveyear|}}} | , {{{archiveyear}}} }}.
}}{{#if: {{{accessdate|}}}
|  Retrieved on {{#time:F j, Y|{{{accessdate}}}}}{{#if: {{{accessyear|}}} | , {{{accessyear}}} }}.
}}{{#if: {{{accessmonthday|}}}
|  Retrieved on {{{accessmonthday}}}, {{{accessyear}}}.
}}{{#if: {{{accessdaymonth|}}}
|  Retrieved on {{{accessdaymonth}}} {{{accessyear}}}.
}}{{#if: {{{quote|}}}
| “{{{quote}}}”
}}</includeonly><noinclude>{{documentation}}
</noinclude>
06085b03744dda1cb654deed7c8e92495d7593a6
Template:Cite web/doc
10
134
145
2022-03-29T00:54:59Z
FANDOM
4
Created page with "__NOTOC__ This template is used to [[Wikipedia:WP:CITE|cite sources]] in Wikipedia. It is specifically for web sites which are not news sources. This template replaces deprec..."
wikitext
text/x-wiki
__NOTOC__
This template is used to [[Wikipedia:WP:CITE|cite sources]] in Wikipedia. It is specifically for web sites which are not news sources. This template replaces deprecated [[Wikipedia:Template:Teb reference|template:web reference]]. It provides lower case parameters only.
A general discussion of the use of templates for adding citation of open-source web content to Wikipedia articles is available at [[Wikipedia:Citation templates|citation templates]].
This page uses [[w:Wikia:Licensing|Creative Commons Licensed]] content from [[w:c:Wookieepedia:Template:Cite web|Wookieepedia]]
== Usage ==
;Common form for cases where little is known about authorship of the page (with current date)
<tt><nowiki>{{Cite web |url= |title= |accessdate=</nowiki>{{CURRENTYEAR}}-{{CURRENTMONTH}}-{{CURRENTDAY2}}<nowiki> |format= |work= }}</nowiki></tt>
;Using last, first (with current date)
<tt><nowiki>{{Cite web |url= |title= |accessdate=</nowiki>{{CURRENTYEAR}}-{{CURRENTMONTH}}-{{CURRENTDAY2}}<nowiki> |last= |first= |authorlink= |coauthors= |date= |year= |month= |format= |work= |publisher= |pages= |language= |archiveurl= |archivedate= |quote= }}</nowiki></tt>
;Using author (with current date)
<tt><nowiki>{{Cite web |url= |title= |accessdate=</nowiki>{{CURRENTYEAR}}-{{CURRENTMONTH}}-{{CURRENTDAY2}}<nowiki> |author= |authorlink= |coauthors= |date= |year= |month= |format= |work= |publisher= |pages= |language= |archiveurl= |archivedate= |quote= }}</nowiki></tt>
;Using non-linked retrieved date, last, first
<tt><nowiki>{{Cite web |url= |title= |accessmonthday= |accessyear= |last= |first= |authorlink= |coauthors= |date= |year= |month= |format= |work= |publisher= |pages= |language= |archiveurl= |archivedate= |quote= }}</nowiki></tt>
;Using non-linked retrieved date, author
<tt><nowiki>{{Cite web |url= |title= |accessmonthday= |accessyear= |author= |authorlink= |coauthors= |date= |year= |month= |format= |work= |publisher= |pages= |language= |archiveurl= |archivedate= |quote= }}</nowiki></tt>
;All parameters, horizontal format (delete the ones you don't need)
<tt><nowiki>{{Cite web |url= |title= |accessdate= |accessmonthday= |accessdaymonth = |accessyear= |author= |last= |first= |authorlink= |coauthors= |date= |year= |month= |format= |work= |publisher= |pages= |language= |archiveurl= |archivedate= |quote= }}</nowiki></tt>
;All parameters, vertical format
<pre>{{Cite web
| url =
| title =
| accessdate =
| accessdaymonth =
| accessmonthday =
| accessyear =
| author =
| last =
| first =
| authorlink =
| coauthors =
| date =
| year =
| month =
| format =
| work =
| publisher =
| pages =
| language =
| archiveurl =
| archivedate =
| quote =
}}</pre>
=== Required parameters ===
* '''url''': URL of online item.
* '''title''': Title of online item.
''For producing a [[Wikipedia:WP:CONTEXT#Dates|wikilinked date]] of retrieval:''
:* '''accessdate''': Full date when item was accessed, in [[Wikipedia:ISO 8601|ISO 8601]] YYYY-MM-DD format, for example "accessdate = {{CURRENTYEAR}}-{{CURRENTMONTH}}-{{CURRENTDAY2}}". ''Must not be wikilinked''
''For producing a non-wikilinked date of retrieval:''
:* '''accessmonthday''' and '''accessyear''': Month and day when item was accessed, for example "accessmonthday = May 10", <u>and</u> year when item was accessed, for example "accessyear = 2005". Produces: ''Retrieved on May 10, 2006.''
:* '''accessdaymonth''' and '''accessyear''': Month and day when item was accessed, for example "accessmonthday = 10 May", <u>and</u> year when item was accessed, for example "accessyear = 2005". Produces: ''Retrieved on 10 May 2006.''
=== Optional parameters ===
* '''author''': Author
** '''last''' works with '''first''' to produce <code>last, first</code>
** '''authorlink''' works either with '''author''' or with '''last''' & '''first''' to link to the appropriate wikipedia article. Does not work with URLs.
** '''coauthors''': allows additional authors
* '''date''': Full date of publication, preferably in [[Wikipedia:ISO 8601|ISO 8601]] YYYY-MM-DD format, e.g. ''2006-02-17''. May be wikilinked.
** OR: '''year''': Year of publication, and '''month''': Name of the month of publication. If you also have the day, use ''date'' instead. Must not be wikilinked.
* '''format''': Format, e.g. PDF. HTML implied if not specified.
* '''work''': If this item is part of a larger work, name of that work.
* '''publisher''': Publisher, if any.
* '''pages''': ''pp. 5–7'': first page and optional last page. This is for listing the pages relevant to the citation, not the total number of pages in the book. This is especially useful for PDF format, where the page can be linked to with the <code>#page=''number''</code> anchor tagged on the end of the URL:
*: <code><nowiki>pages = [http://www.example.org/file.pdf#page=123 p. 123]</nowiki></code>
* '''language''': language of publication (don't specify "English" as this is the default).
* '''archiveurl''': URL of the archive location of the item (requires '''archivedate''')
* '''archivedate''': Date when the item was archived (requires '''archiveurl'''), in [[Wikipedia:ISO 8601|ISO 8601]] YYYY-MM-DD format, e.g. ''2006-02-17''. Must not be wikilinked; it will be linked automatically.
* '''quote''': Relevant quote from online item.
== Examples ==
;Some standard use cases
* <nowiki>{{Cite web
| author=Doe, John
| title=My Favorite Things Part II
| publisher=Open Publishing
| date=2005-04-30
| work=Encyclopedia of Things
| url=http://www.example.org/
| accessdate=2005-07-06
}}</nowiki><br/>→ <span style="background:white">{{cite web | author=Doe, John | title=My Favorite Things Part II | publisher=Open Publishing | date=2005-04-30 | work=Encyclopedia of Things | url=http://www.example.org | accessdate=2005-07-06 }}</span>
* <nowiki>{{Cite web
| author=Doe, John
| title=My Favorite Things Part II
| date=2005-04-30
| work=Encyclopedia of Things
| url=http://www.example.org/
| accessdate=2005-07-06
}}</nowiki><br/>→ <span style="background:white">{{cite web | author=Doe, John | title=My Favorite Things Part II | date=2005-04-30 | work=Encyclopedia of Things | url=http://www.example.org | accessdate=2005-07-06 }}</span>
* <nowiki>{{Cite web
| author=Doe, John
| title=My Favorite Things Part II
| date=2005-04-30
| url=http://www.example.org/
| accessdate=2005-07-06
}}</nowiki><br/>→ <span style="background:white">{{cite web | author=Doe, John | title=My Favorite Things Part II | date=2005-04-30 | url=http://www.example.org | accessdate=2005-07-06}}</span>
* <nowiki>{{Cite web
| author=Doe, John
| title=My Favorite Things Part II
| url=http://www.example.org/
| accessdate=2005-07-06
}}</nowiki><br/>→ <span style="background:white">{{cite web | author=Doe, John | title=My Favorite Things Part II | url=http://www.example.org | accessdate=2005-07-06}}</span>
* <nowiki>{{Cite web
| title=My Favorite Things Part II
| url=http://www.example.org/
| accessdate=2005-07-06
}}</nowiki><br/>→ <span style="background:white">{{cite web | title=My Favorite Things Part II | url=http://www.example.org | accessdate=2005-07-06}}</span>
* <nowiki>{{Cite web
| url=http://www.nfl.com/fans/
| title=Digest of Rules
| publisher= National Football League
| accessdate=2005-07-06
}}</nowiki><br>→ <span style="background:white">{{cite web | url=http://www.nfl.com/fans/
| title=Digest of Rules | publisher= National Football League | accessdate=2005-07-06 }}</span>
;Non-linking date of retrieval (using accessmonthday and accessyear)
* <nowiki>{{Cite web
| title=My Favorite Things Part II
| work=Encyclopedia of Things
| url=http://www.example.org/
| accessmonthday=July 6
| accessyear=2005
}}</nowiki><br/> → <span style="background:white">{{cite web
| title=My Favorite Things Part II
| work=Encyclopedia of Things
| url=http://www.example.org/
| accessmonthday=July 6
| accessyear=2005
}}</span>
;Using format
* <nowiki>{{Cite web
| title=List of psychotropic substances under international control
| publisher = International Narcotics Control Board
| url=http://www.incb.org/pdf/e/list/green.pdf
| format = PDF
| accessdate=2005-07-06
}}</nowiki><br/> → <span style="background:white">{{cite web
| title=List of psychotropic substances under international control
| publisher = International Narcotics Control Board | url=http://www.incb.org/pdf/e/list/green.pdf
| format = PDF | accessdate=2005-07-06}}</span>
;language
* <nowiki>{{Cite web
| author=Joliet, François
| title=Honnit soit qui mal y pense
| date=2005-04-30
| url=http://www.example.org/
| accessdate=2005-07-06
| language=French
}}</nowiki><br/>→ <span style="background:white">{{cite web | author=Joliet, François | title=Honnit soit qui mal y pense | date=2005-04-30 | url=http://www.example.org | accessdate=2005-07-06 | language=French}}</span>
;coauthors
* <nowiki>{{Cite web | first=John | last=Doe | coauthors=Peter Smith, Jim Smythe | title=My Favorite Things Part II | publisher=Open Publishing | date=2005-04-30 | work=Encyclopedia of Things | url=http://www.example.org/ | accessdate=2006-05-16
}}</nowiki><br/>→ <span style="background:white">{{cite web | first=John | last=Doe | coauthors=Peter Smith, Jim Smythe | title=My Favorite Things Part II | publisher=Open Publishing | date=2005-04-30 | work=Encyclopedia of Things | url=http://www.example.org/ | accessdate=2006-05-16 }}</span>
;No author
* <nowiki>{{Cite web | title=My Favorite Things Part II | publisher=Open Publishing | date=2005-04-30 | work=Encyclopedia of Things | url=http://www.example.org/ | accessdate=2006-05-16
}}</nowiki><br/>→ <span style="background:white">{{cite web | title=My Favorite Things Part II | publisher=Open Publishing | date=2005-04-30 | work=Encyclopedia of Things | url=http://www.example.org/ | accessdate=2006-05-16 }}</span>
;No author, no publisher
* <nowiki>{{Cite web | title=My Favorite Things Part II | date=2005-04-30 | work=Encyclopedia of Things | url=http://www.example.org/ | accessdate=2005-07-06
}}</nowiki></br>→ <span style="background:white">{{cite web | title=My Favorite Things Part II | date=2005-04-30 | work=Encyclopedia of Things | url=http://www.example.org/ | accessdate=2005-07-06 }}</span>
* <nowiki>{{Cite web | title=My Favorite Things Part II | date=2005-04-30 | url=http://www.example.org/ | accessdate=2005-07-06 }}</nowiki><br/>→ <span style="background:white">{{cite web | title=My Favorite Things Part II | date=2005-04-30 | url=http://www.example.org/ | accessdate=2005-07-06 }}</span>
* <nowiki>{{Cite web
| title=List of psychotropic substances under international control
| date=2005-04-30
| url=http://www.incb.org/pdf/e/list/green.pdf
| format = PDF
| accessdate=2005-07-06
| language=Greek
}}</nowiki><br/> → <span style="background:white">{{cite web
| title=List of psychotropic substances under international control | date=2005-04-30
| url=http://www.incb.org/pdf/e/list/green.pdf | format = PDF | accessdate=2005-07-06
| language=Greek }}</span>
; Using archiveurl and archivedate to refer to items that went away but are available from an archive site
* <nowiki>{{Cite web
| title=List of psychotropic substances under international control
| date=2005-04-30
| url=http://www.incb.org/pdf/e/list/green.pdf
| format = PDF
| accessdate=2005-07-06
| archiveurl=http://www.archive.org/2005-09-11/www.incb.org/pdf/e/list/green.pdf
| archivedate=2005-09-11
}}</nowiki><br/> → <span style="background:white">{{cite web
| title=List of psychotropic substances under international control
| date=2005-04-30
| url=http://www.incb.org/pdf/e/list/green.pdf
| format = PDF
| accessdate=2005-07-06
| archiveurl=http://www.archive.org/2005-09-11/www.incb.org/pdf/e/list/green.pdf
| archivedate=2005-09-11 }}</span>
* <nowiki>
{{Cite web
|url=http://joanjettbadrep.com/cgi-bin/fullStory.cgi?archive=currnews&story=20060405-01shore.htm
|title=Interview with Maggie Downs
|date=2006-03-31
|publisher=The Desert Sun
|archiveurl=http://72.14.207.104/search?q=cache:JAxf4v-pQmgJ:joanjettbadrep.com/cgi-bin/fullStory.cgi%3Farchive%3Dcurrnews%26story%3D20060405-01shore.htm
|archivedate=2006-04-26
}}</nowiki><br/> → <span style="background:white">{{cite web
|url=http://joanjettbadrep.com/cgi-bin/fullStory.cgi?archive=currnews&story=20060405-01shore.htm
|title=Interview with Maggie Downs
|date=2006-03-31
|publisher=The Desert Sun
|archiveurl=http://72.14.207.104/search?q=cache:JAxf4v-pQmgJ:joanjettbadrep.com/cgi-bin/fullStory.cgi%3Farchive%3Dcurrnews%26story%3D20060405-01shore.htm
|archivedate=2006-04-26}}</span>
; Using quote
* <nowiki>{{Cite web
| title = My Favorite Things Part II
| work = Encyclopedia of Things
| url = http://www.example.org/
| accessdate = 2005-07-06
| quote = Lorem ipsum dolor.
}}</nowiki><br/>→ <span style="background:white">{{cite web
| title = My Favorite Things Part II
| work = Encyclopedia of Things
| url = http://www.example.org/
| accessdate = 2005-07-06
| quote = Lorem ipsum dolor.
}}</span>
;No parameters (error)
* <nowiki>{{Cite web}}</nowiki><br/>→ <span style="background:white">{{cite web}}</span>
<includeonly>[[Category:General wiki templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
49566b6a3601a57e7e4d3521179ec7d3300ec2a1
Thunder, Ice, and Everything Nice:Wiki rules
4
135
146
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
Below is a suggested set of rules to follow when editing this wiki. Administrators of this wiki should read these rules and adapt them as necessary.
# '''Keep it civil''': Do not make personal attacks on other people. If you need to criticize another user’s argument, do so without attacking them as a person. Do not use bigoted language, including slurs which degrade another person or group of people based on gender, race, sexual orientation, nationality, religion, etc.
# '''Be a productive member of the wiki''': Contribute to the wiki in line with the established processes and conventions. Need help? Ask an [[Special:ListUsers/sysop|administrator]]! Disrupting the wiki with “edit warring” over differing opinions of a topic with another user or group of users is not productive.
# '''Do not engage in excessive self-promotion''': The wiki is a collaborative community resource for the topic at hand. It is NOT a free place to advertise your related website, YouTube channel, blog, social media account, etc. Have a question about whether your link would be welcome? Ask an administrator!
# '''Do not harass other users''': If somebody asks you to stop posting certain content on their wall, respect their wishes. It is their wall.
# '''Do follow community guidelines for formatting''': When a community has established formatting, it’s important to adhere to that, especially when spoiler content is involved.
[[Category:{{SITENAME}}]]
efad0088b04516c5e666314530cc43875a74fd71
Blog:Recent posts
0
136
147
2022-03-29T00:54:59Z
FANDOM
4
Created article for recent blog posts
wikitext
text/x-wiki
<bloglist summary="true" count=50><title>⧼create-blog-post-recent-listing-title ⧽</title><type>plain</type><order>date</order></bloglist>
afb902f1d8c2d7adccbdd48b1fbd4a0cc5361783
Category:Blog posts
14
137
148
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
This is an automatically generated list of blog posts
[[Category:Community]]
864f70c2af84fd84c1901d154b90eb4facc9f37c
Category:Community
14
138
149
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:{{SITENAME}}]]"
wikitext
text/x-wiki
[[Category:{{SITENAME}}]]
dd8aaa34cf600c1567d240a3f4bc615164a11592
Category:Pages with broken file links
14
139
150
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:Maintenance]]"
wikitext
text/x-wiki
[[Category:Maintenance]]
a106a39e26c77e7b2ec90cb83728a6446cb6a1a1
Category:Videos
14
140
151
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:Media]]"
wikitext
text/x-wiki
[[Category:Media]]
b141d2b9971d6efe9f59bd03449781e71411c631
Category:Screenshots
14
141
152
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:Images]]"
wikitext
text/x-wiki
[[Category:Images]]
8820b63e35aedd9d2666fe40b965d4e91ce0a106
Category:Wiki skin images
14
142
153
2022-03-29T00:54:59Z
FANDOM
4
Created page with "[[Category:Images]]"
wikitext
text/x-wiki
[[Category:Images]]
8820b63e35aedd9d2666fe40b965d4e91ce0a106
MediaWiki:Mainpage
8
143
154
2022-03-29T00:54:59Z
FANDOM
4
wikitext
text/x-wiki
Main Page
29b077bd4b72e57c6500fdd2d77e1a8b60f2816b
155
154
2022-03-29T00:55:00Z
FANDOM
4
SEO
wikitext
text/x-wiki
Thunder, Ice, and Everything Nice Wiki
41454ed908cc2d76c0059c5623dddb6fb8d5421d
File:Site-background-dark
6
144
157
2022-03-29T00:55:40Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Site-background-light
6
145
158
2022-03-29T00:55:40Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Thunder, Ice, and Everything Nice Wiki
0
2
3
2
2022-03-29T00:57:40Z
Gingerdanger
2
Adding categories
wikitext
text/x-wiki
<mainpage-leftcolumn-start />
<div style="text-align: center; font-size: x-large; padding: 1em;">'''Welcome to the {{SITENAME}}!'''</div>
Saturday D&D
We're a collaborative community website about {{topic}} that anyone, including you, can build and expand. Wikis like this one depend on readers getting involved and adding content. Click the "ADD NEW PAGE" or "EDIT" button at the top of any page to get started!
==Important articles==
<gallery position="center" captionalign="center" navigation="true">
File:Placeholder | [[A page about your topic]] |link=A page about your topic
File:Placeholder | [[A Main Character]] |link=A Main Character
File:Placeholder | [[The First Episode]] |link=The First Episode
File:Placeholder | [[An Important Location]] |link=An Important Location
File:Placeholder | [[A Key Event]] |link=A Key Event
File:Placeholder | [[A Crucial Item]] |link=A Crucial Item
</gallery>
<!-- The gallery above works well for individual articles, but it would also be good to have another below it that points to important Category: pages. -->
<mainpage-endcolumn />
<mainpage-rightcolumn-start />
''Need help building out this community?''
*[[Project:Wiki rules|Rules of this wiki]]
*[[w:c:community:Help:Getting Started|Getting Started]]
*[[w:c:community:Help:Contributing|How to Contribute]]
*[[w:c:community:Help:Community Management|Managing your new community]]
*[[w:c:community:Help:Contents|Guides]]
*[[w:c:community:Help:Index|All Help articles]]
You can also be part of the larger Fandom family of communities. Visit [[w:c:community|Fandom's Community Central]]!
''Community Founders'': Write a good and paragraph-length description for your welcome section about your topic. Let your readers know what your topic is about and add some general information about it. Then you should visit [[Special:AdminDashboard|the admin dashboard for more tips]].
<mainpage-endcolumn />
[[Category:{{SITENAME}}]]
[[Category:The Party]]
[[Category:Settings]]
5733c4ee6156dc8f5de6db6d775321bf9219181b
4
3
2022-03-29T02:04:21Z
Gingerdanger
2
Adding categories
wikitext
text/x-wiki
<mainpage-leftcolumn-start />
<div style="text-align: center; font-size: x-large; padding: 1em;">'''Welcome to the {{SITENAME}}!'''</div>
Saturday D&D
We're a collaborative community website about {{topic}} that anyone, including you, can build and expand. Wikis like this one depend on readers getting involved and adding content. Click the "ADD NEW PAGE" or "EDIT" button at the top of any page to get started!
==Important articles==
<gallery position="center" captionalign="center" navigation="true">
File:Placeholder | [[A page about your topic]] |link=A page about your topic
File:Placeholder | [[A Main Character]] |link=A Main Character
File:Placeholder | [[The First Episode]] |link=The First Episode
File:Placeholder | [[An Important Location]] |link=An Important Location
File:Placeholder | [[A Key Event]] |link=A Key Event
File:Placeholder | [[A Crucial Item]] |link=A Crucial Item
</gallery>
<!-- The gallery above works well for individual articles, but it would also be good to have another below it that points to important Category: pages. -->
<mainpage-endcolumn />
<mainpage-rightcolumn-start />
''Need help building out this community?''
*[[Project:Wiki rules|Rules of this wiki]]
*[[w:c:community:Help:Getting Started|Getting Started]]
*[[w:c:community:Help:Contributing|How to Contribute]]
*[[w:c:community:Help:Community Management|Managing your new community]]
*[[w:c:community:Help:Contents|Guides]]
*[[w:c:community:Help:Index|All Help articles]]
You can also be part of the larger Fandom family of communities. Visit [[w:c:community|Fandom's Community Central]]!
''Community Founders'': Write a good and paragraph-length description for your welcome section about your topic. Let your readers know what your topic is about and add some general information about it. Then you should visit [[Special:AdminDashboard|the admin dashboard for more tips]].
<mainpage-endcolumn />
[[Category:{{SITENAME}}]]
[[Category:The Party]]
[[Category:Settings]]
[[Category:Settlements]]
7ada9c322861498b48f0481c69f2240227f99e1d
5
4
2022-03-29T02:10:18Z
Gingerdanger
2
wikitext
text/x-wiki
<mainpage-leftcolumn-start />
<div style="text-align: center; font-size: x-large; padding: 1em;">'''Welcome to the {{SITENAME}}!'''</div>
Saturday D&D
We're a collaborative community website about {{topic}} that anyone, including you, can build and expand. Wikis like this one depend on readers getting involved and adding content. Click the "ADD NEW PAGE" or "EDIT" button at the top of any page to get started!
==Important articles==
<gallery position="center" captionalign="center" navigation="true">
File:Placeholder|link=A page about your topic| [[The Banes of Thunder]]
File:Placeholder|link=A Main Character| [[A Main Character]]
File:Placeholder|link=The First Episode| [[The First Episode]]
File:Placeholder|link=An Important Location| [[An Important Location]]
File:Placeholder|link=A Key Event| [[A Key Event]]
File:Placeholder|link=A Crucial Item| [[A Crucial Item]]
</gallery>
<!-- The gallery above works well for individual articles, but it would also be good to have another below it that points to important Category: pages. -->
<mainpage-endcolumn />
<mainpage-rightcolumn-start />
''Need help building out this community?''
*[[Project:Wiki rules|Rules of this wiki]]
*[[w:c:community:Help:Getting Started|Getting Started]]
*[[w:c:community:Help:Contributing|How to Contribute]]
*[[w:c:community:Help:Community Management|Managing your new community]]
*[[w:c:community:Help:Contents|Guides]]
*[[w:c:community:Help:Index|All Help articles]]
You can also be part of the larger Fandom family of communities. Visit [[w:c:community|Fandom's Community Central]]!
''Community Founders'': Write a good and paragraph-length description for your welcome section about your topic. Let your readers know what your topic is about and add some general information about it. Then you should visit [[Special:AdminDashboard|the admin dashboard for more tips]].
<mainpage-endcolumn />
[[Category:{{SITENAME}}]]
[[Category:The Party]]
[[Category:Settings]]
[[Category:Settlements]]
3d5c8764a82332e509c49cdf0774a060762e9d7a
Category:Settlements
14
146
159
2022-03-29T02:04:36Z
Gingerdanger
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Thunder, Ice, and Everything Nice Wiki
0
2
6
5
2022-03-30T16:26:46Z
Gingerdanger
2
wikitext
text/x-wiki
<mainpage-leftcolumn-start />
<div style="text-align: center; font-size: x-large; padding: 1em;">'''Welcome to the {{SITENAME}}!'''</div>
In a little town on the Sword Coast, a group of strangers took a quest to earn some cash.
How strange to think they would go on to kill a dragon, aid a would-be prince, and fall into the lands of the Fey. Strange happenings surround these adventurers, and threaten to snare them in a web of ice and magic.
==Important articles==
<gallery position="center" captionalign="center" navigation="true">
File:Placeholder|link=A page about your topic| [[The Banes of Thunder]]
File:Placeholder|link=A Main Character| [[A Main Character]]
File:Placeholder|link=The First Episode| [[The First Episode]]
File:Placeholder|link=An Important Location| [[An Important Location]]
File:Placeholder|link=A Key Event| [[A Key Event]]
File:Placeholder|link=A Crucial Item| [[A Crucial Item]]
</gallery>
<!-- The gallery above works well for individual articles, but it would also be good to have another below it that points to important Category: pages. -->
<mainpage-endcolumn />
<mainpage-rightcolumn-start />
''Need help building out this community?''
*[[Project:Wiki rules|Rules of this wiki]]
*[[w:c:community:Help:Getting Started|Getting Started]]
*[[w:c:community:Help:Contributing|How to Contribute]]
*[[w:c:community:Help:Community Management|Managing your new community]]
*[[w:c:community:Help:Contents|Guides]]
*[[w:c:community:Help:Index|All Help articles]]
You can also be part of the larger Fandom family of communities. Visit [[w:c:community|Fandom's Community Central]]!
''Community Founders'': Write a good and paragraph-length description for your welcome section about your topic. Let your readers know what your topic is about and add some general information about it. Then you should visit [[Special:AdminDashboard|the admin dashboard for more tips]].
<mainpage-endcolumn />
[[Category:{{SITENAME}}]]
[[Category:The Party]]
[[Category:Settings]]
[[Category:Settlements]]
f9b983d90f3d88501f67c1648f7dd2c1ed280e91
7
6
2022-05-09T23:38:42Z
Gingerdanger
2
wikitext
text/x-wiki
<mainpage-leftcolumn-start />
<div style="text-align: center; font-size: x-large; padding: 1em;">'''Welcome to the {{SITENAME}}!'''</div>
In a little town on the Sword Coast, a group of strangers took a quest to earn some cash.
How strange to think they would go on to kill a dragon, aid a would-be prince, and fall into the lands of the Fey. Strange happenings surround these adventurers, and threaten to snare them in a web of ice and magic.
==Important articles==
<gallery position="center" captionalign="center" navigation="true">
File:Placeholder|link=A page about your topic| [[The Banes of Thunder]]
File:Placeholder|link=A Main Character| [[A Main Character]]
File:Placeholder|link=The First Episode| [[The First Episode]]
File:Placeholder|link=An Important Location| [[An Important Location]]
File:Placeholder|link=A Key Event| [[A Key Event]]
File:Placeholder|link=A Crucial Item| [[A Crucial Item]]
</gallery>
<!-- The gallery above works well for individual articles, but it would also be good to have another below it that points to important Category: pages. -->
<mainpage-endcolumn />
<mainpage-rightcolumn-start />
''Need help building out this community?''
*[[Project:Wiki rules|Rules of this wiki]]
*[[w:c:community:Help:Getting Started|Getting Started]]
*[[w:c:community:Help:Contributing|How to Contribute]]
*[[w:c:community:Help:Community Management|Managing your new community]]
*[[w:c:community:Help:Contents|Guides]]
*[[w:c:community:Help:Index|All Help articles]]
You can also be part of the larger Fandom family of communities. Visit [[w:c:community|Fandom's Community Central]]!
''Community Founders'': Write a good and paragraph-length description for your welcome section about your topic. Let your readers know what your topic is about and add some general information about it. Then you should visit [[Special:AdminDashboard|the admin dashboard for more tips]].
<mainpage-endcolumn />
[[Category:{{SITENAME}}]]
[[Category:The Party]]
[[Category:Settings]]
[[Category:Settlements]]
e354b6d0a49c25ac91657be9423b2dad3dd95ba8
8
7
2022-05-09T23:42:47Z
Gingerdanger
2
wikitext
text/x-wiki
<mainpage-leftcolumn-start />
<div style="text-align: center; font-size: x-large; padding: 1em;">'''Welcome to the {{SITENAME}}!'''</div>
In a little town on the Sword Coast, a group of strangers took a quest to earn some cash.
How strange to think they would go on to kill a dragon, aid a would-be prince, and fall into the lands of the Fey. Strange happenings surround these adventurers, and threaten to snare them in a web of ice and magic.
==Important articles==
<gallery position="center" captionalign="center" navigation="true">
File:Celtic Boar.jpeg|[[The Banes of Thunder]]
File:Placeholder|link=The First Episode| [[The First Episode]]
File:Placeholder|link=A Main Character| [[A Main Character]]
File:Placeholder|link=An Important Location| [[An Important Location]]
File:Placeholder|link=A Key Event| [[A Key Event]]
File:Placeholder|link=A Crucial Item| [[A Crucial Item]]
</gallery>
<!-- The gallery above works well for individual articles, but it would also be good to have another below it that points to important Category: pages. -->
<mainpage-endcolumn />
<mainpage-rightcolumn-start />
''Need help building out this community?''
*[[Project:Wiki rules|Rules of this wiki]]
*[[w:c:community:Help:Getting Started|Getting Started]]
*[[w:c:community:Help:Contributing|How to Contribute]]
*[[w:c:community:Help:Community Management|Managing your new community]]
*[[w:c:community:Help:Contents|Guides]]
*[[w:c:community:Help:Index|All Help articles]]
You can also be part of the larger Fandom family of communities. Visit [[w:c:community|Fandom's Community Central]]!
''Community Founders'': Write a good and paragraph-length description for your welcome section about your topic. Let your readers know what your topic is about and add some general information about it. Then you should visit [[Special:AdminDashboard|the admin dashboard for more tips]].
<mainpage-endcolumn />
[[Category:{{SITENAME}}]]
[[Category:The Party]]
[[Category:Settings]]
[[Category:Settlements]]
cd45a780020bf0a0184d599e23ca41e344a7e67b
9
8
2022-05-10T20:50:55Z
Gingerdanger
2
wikitext
text/x-wiki
<mainpage-leftcolumn-start />
<div style="text-align: center; font-size: x-large; padding: 1em;">'''Welcome to the {{SITENAME}}!'''</div>
In a little town on the Sword Coast, a group of strangers took a quest to earn some cash.
How strange to think they would go on to kill a dragon, aid a would-be prince, and fall into the lands of the Fey. Strange happenings surround these adventurers, and threaten to snare them in a web of ice and magic.
==Important articles==
<gallery position="center" captionalign="center" navigation="true">
File:Celtic Boar.jpeg|[[The Banes of Thunder]]
File:Placeholder|link=The First Episode| [[The First Episode]]
File:Placeholder|link=A Main Character| [[A Main Character]]
File:Placeholder|link=An Important Location| [[An Important Location]]
File:Placeholder|link=A Key Event| [[A Key Event]]
File:Placeholder|link=A Crucial Item| [[A Crucial Item]]
</gallery>
<!-- The gallery above works well for individual articles, but it would also be good to have another below it that points to important Category: pages. -->
<mainpage-endcolumn />
<mainpage-rightcolumn-start />
''Need help building out this community?''
*[[Project:Wiki rules|Rules of this wiki]]
*[[w:c:community:Help:Getting Started|Getting Started]]
*[[w:c:community:Help:Contributing|How to Contribute]]
*[[w:c:community:Help:Community Management|Managing your new community]]
*[[w:c:community:Help:Contents|Guides]]
*[[w:c:community:Help:Index|All Help articles]]
You can also be part of the larger Fandom family of communities. Visit [[w:c:community|Fandom's Community Central]]!
''Community Founders'': Write a good and paragraph-length description for your welcome section about your topic. Let your readers know what your topic is about and add some general information about it. Then you should visit [[Special:AdminDashboard|the admin dashboard for more tips]].
<mainpage-endcolumn />
[[Category:{{SITENAME}}]]
[[Category:Settings]]
90f58246ddd8b2d68a10fb90c531fc18f03f5486
10
9
2022-05-12T15:27:59Z
Gingerdanger
2
wikitext
text/x-wiki
<mainpage-leftcolumn-start />
<div style="text-align: center; font-size: x-large; padding: 1em;">'''Welcome to the {{SITENAME}}!'''</div>
In a little town on the Sword Coast, a group of strangers took a quest to earn some cash.
How strange to think they would go on to kill a dragon, aid a would-be prince, and fall into the lands of the Fey. Strange happenings surround these adventurers, and threaten to snare them in a web of ice and magic.
==Important articles==
<gallery position="center" captionalign="center" navigation="true">
File:Celtic Boar.jpeg|[[The Banes of Thunder]]
File:Placeholder|link=A Crucial Item| [[The Crown of Neverwinter]]
File:Placeholder|link=The First Episode| [[The Sword Coast]]
File:Placeholder|link=A Main Character| [[Neverwinter]]
File:Placeholder|link=An Important Location| [[The Feywild]]
File:Placeholder|link=A Key Event| [[Courts of the Fey]]
</gallery>
<!-- The gallery above works well for individual articles, but it would also be good to have another below it that points to important Category: pages. -->
<mainpage-endcolumn />
<mainpage-rightcolumn-start />
''Need help building out this community?''
*[[Project:Wiki rules|Rules of this wiki]]
*[[w:c:community:Help:Getting Started|Getting Started]]
*[[w:c:community:Help:Contributing|How to Contribute]]
*[[w:c:community:Help:Community Management|Managing your new community]]
*[[w:c:community:Help:Contents|Guides]]
*[[w:c:community:Help:Index|All Help articles]]
You can also be part of the larger Fandom family of communities. Visit [[w:c:community|Fandom's Community Central]]!
''Community Founders'': Write a good and paragraph-length description for your welcome section about your topic. Let your readers know what your topic is about and add some general information about it. Then you should visit [[Special:AdminDashboard|the admin dashboard for more tips]].
<mainpage-endcolumn />
[[Category:{{SITENAME}}]]
[[Category:Settings]]
86ba84c49827721ee794ac5f04b384471d385ba3
11
10
2022-05-12T15:34:33Z
Gingerdanger
2
wikitext
text/x-wiki
<mainpage-leftcolumn-start />
<div style="text-align: center; font-size: x-large; padding: 1em;">'''Welcome to the {{SITENAME}}!'''</div>
In a little town on the Sword Coast, a group of strangers took a quest to earn some cash.
How strange to think they would go on to kill a dragon, aid a would-be prince, and fall into the lands of the Fey. Strange happenings surround these adventurers, and threaten to snare them in a web of ice and magic.
==Important articles==
<gallery position="center" captionalign="center" navigation="true">
File:Celtic Boar.jpeg|[[The Banes of Thunder]]
File:Placeholder|link=A Crucial Item| [[The Crown of Neverwinter]]
File:Placeholder|link=The First Episode| [[The Sword Coast]]
File:Placeholder|link=A Main Character| [[Neverwinter]]
File:Placeholder|link=An Important Location| [[The Feywild]]
File:Placeholder|link=A Key Event| [[Courts of the Fey]]
</gallery>
<!-- The gallery above works well for individual articles, but it would also be good to have another below it that points to important Category: pages. -->
<mainpage-endcolumn />
<mainpage-rightcolumn-start />
''Need help building out this community?''
*[[Project:Wiki rules|Rules of this wiki]]
*[[w:c:community:Help:Getting Started|Getting Started]]
*[[w:c:community:Help:Contributing|How to Contribute]]
*[[w:c:community:Help:Community Management|Managing your new community]]
*[[w:c:community:Help:Contents|Guides]]
*[[w:c:community:Help:Index|All Help articles]]
You can also be part of the larger Fandom family of communities. Visit [[w:c:community|Fandom's Community Central]]!
''Community Founders'': Write a good and paragraph-length description for your welcome section about your topic. Let your readers know what your topic is about and add some general information about it. Then you should visit [[Special:AdminDashboard|the admin dashboard for more tips]].
<mainpage-endcolumn />
[[Category:{{SITENAME}}]]
[[Category:Settings]]
aa11313521d9a370779e4495e590e6704c416689
Category:The Party
14
147
160
2022-03-30T16:28:07Z
Gingerdanger
2
Created page with "The adventurers, both past and present. Once stranger, now companions."
wikitext
text/x-wiki
The adventurers, both past and present. Once stranger, now companions.
dce573313c8f46d10385aefaf998193d60123e31
161
160
2022-05-10T04:21:24Z
Gingerdanger
2
wikitext
text/x-wiki
The adventurers, both past and present. Once stranger, now companions.
== PCs ==
*
<br />
92f4b7a2fadeafd1901d16ffd00adc6644b7f980
162
161
2022-05-10T04:21:41Z
Gingerdanger
2
wikitext
text/x-wiki
The adventurers, both past and present. Once stranger, now companions.
*
<br />
0b4cd5a27ba85be6329fe50a2db9c1afc8d1573c
File:Celtic Boar.jpeg
6
148
163
2022-05-09T23:40:44Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
The Banes of Thunder
0
149
164
2022-05-09T23:58:38Z
Gingerdanger
2
Created page with "A group of adventurers formed in Phandalin to complete some jobs for the people in order to gain some quick cash. The original members were [[Helu]], [[Marcus Blackblood]], ..."
wikitext
text/x-wiki
A group of adventurers formed in Phandalin to complete some jobs for the people in order to gain some quick cash. The original members were [[Helu]], [[Marcus Blackblood]], [[Sedge Thistlestrike]]. Other adventurers who joined later include [[Fen Melody]], [[Blossom]], [[Lichen]], and [[Eilif Crimsonlight]]. NPCs who have joined include [[Ronaan]] and [[Oscar]].
At first the group had no name. They earned it when Helu, Marcus, Sedge, Fen, and Ronaan took down [[Gorthok, the Thunder Boar]].
== History ==
HISTORY GOES HERE
== Animal Companions ==
* [[Porsche]]
* [[Swifty]]
* [[Shitake]]
* [[Craic]]
* [[Amadán]]
4edcd3028ff6c8589b86015b938455281dc8775f
165
164
2022-05-10T00:09:45Z
Gingerdanger
2
wikitext
text/x-wiki
A group of adventurers formed in Phandalin to complete some jobs for the people in order to gain some quick cash. The original members were [[Helu]], [[Marcus Blackblood]], [[Sedge Thistlestrike]]. Other adventurers who joined later include [[Fen Melody]], [[Blossom]], [[Lichen]], and [[Eilif Crimsonlight]]. Allies who have joined include [[Ronaan]] and [[Oscar]].
At first the group had no name. They earned it when Helu, Marcus, Sedge, Fen, and Ronaan took down [[Gorthok, the Thunder Boar]].
== History ==
HISTORY GOES HERE
== Members ==
=== Current ===
* [[Helu]]
* [[Marcus Blackblood]]
* [[Blossom]]
* [[Sedge Thistlestrike]]
* [[Eilif Crimsonlight]]
=== Past ===
* [[Fen Melody]]
* [[Lichen]]
== Animal Companions ==
* [[Porsche]]
* [[Swifty]]
* [[Shitake]]
* [[Craic]]
* [[Amadán]]
== Allies ==
* Ronaan Wisespeaker
* Oscar
* The King of Dragonflies
* Halia Thorton
* Falcon
* Pell
* Ember
== Enemies ==
* Sir Rhadur Stoman
* Gorthok the Thunder Boar
* Queen Mab
50910505fae3fcf62ebb46a7afcf65d983e16970
Helu
0
150
166
2022-05-10T04:22:50Z
Gingerdanger
2
Created page with "=== Appearance === === History === === History ==="
wikitext
text/x-wiki
=== Appearance ===
=== History ===
=== History ===
8af39a311681cd5a658aa8877fefdbd549cfa764
167
166
2022-05-10T14:54:02Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|aliases=Moss|relatives=Ronaan Wisespeaker [adoptive brother]|affiliation=The Banes of Thunder|portrayedby=Bones|race=Half-Elf, Half-Orc|class=Barbarian, Wild Magic|age=16|hometown=Neverwinter}}
=== Appearance ===
=== History ===
=== History ===
6110cad1beb8aa106f66b3e0d112fac68432dfd0
168
167
2022-05-10T15:07:51Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|aliases=Moss|relatives=Ronaan Wisespeaker [adoptive brother]|affiliation=The Banes of Thunder|race=Half-Elf, Half-Orc|class=Barbarian|age=16|hometown=Neverwinter|name=Helu|Player=Bones|player=Bones|subclass=Wild Magic|str=18 [+4]|dex=14 [+2]|con=16 [+3]|wis=15 [+1]|int=12 [+1]|cha=12 [+1]|image=Helu.png}}
=== Appearance ===
=== History ===
=== History ===
606ed27f22ee414cba338b69b58dc1a044dc051c
169
168
2022-05-10T15:18:34Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|aliases=Moss|relatives=Ronaan Wisespeaker [adoptive brother]|affiliation=The Banes of Thunder|race=Half-Elf, Half-Orc|class=Barbarian|age=16|hometown=Neverwinter|name=Helu|Player=Bones|player=Bones|subclass=Wild Magic|str=18 [+4]|dex=14 [+2]|con=16 [+3]|wis=15 [+1]|int=12 [+1]|cha=12 [+1]|image=Helu.png}}
== Appearance ==
<br />
== History ==
<br />
== Notable Items ==
* Hat of Disguise
* Clockwork Amulet
* Bag of Devouring
* Half of the crown of Neverwinter
<br />
== Additional Companions ==
* Wild magic flumph
* Amadán
== Trivia ==
6f8ab77dfc8a34dd68afa54fcf55fba1dde919d3
170
169
2022-05-10T15:28:11Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|aliases=Moss|relatives=Unnamed adoptive mother
Unnamed adoptive father
Ronaan Wisespeaker [adoptive brother]
Unnamed sibling|affiliation=The Banes of Thunder|race=Half-Elf, Half-Orc|class=Barbarian|age=16|hometown=Neverwinter|name=Helu|Player=Bones|player=Bones|subclass=Wild Magic|str=18 [+4]|dex=14 [+2]|con=16 [+3]|wis=15 [+1]|int=12 [+1]|cha=12 [+1]|image=Helu.png}}
== Appearance ==
<br />
== History ==
<br />
== Notable Items ==
* Hat of Disguise
* Clockwork Amulet
* Bag of Devouring
* Half of the crown of Neverwinter
<br />
== Additional Companions ==
* Wild magic flumph
* Amadán
== Trivia ==
a347db8495720a4b7b41145ae507ee12c592f99d
171
170
2022-05-10T15:28:40Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|aliases=Moss|relatives=Unnamed adoptive mother
Unnamed adoptive father
Ronaan Wisespeaker [adoptive brother]|affiliation=The Banes of Thunder|race=Half-Elf, Half-Orc|class=Barbarian|age=16|hometown=Neverwinter|name=Helu|Player=Bones|player=Bones|subclass=Wild Magic|str=18 [+4]|dex=14 [+2]|con=16 [+3]|wis=15 [+1]|int=12 [+1]|cha=12 [+1]|image=Helu.png}}
== Appearance ==
<br />
== History ==
<br />
== Notable Items ==
* Hat of Disguise
* Clockwork Amulet
* Bag of Devouring
* Half of the crown of Neverwinter
<br />
== Additional Companions ==
* Wild magic flumph
* Amadán
== Trivia ==
025432eff433f8172d4a2d5e9ab52143073ca98b
172
171
2022-05-10T20:49:01Z
Gingerdanger
2
Adding categories
wikitext
text/x-wiki
{{Character|aliases=Moss|relatives=Unnamed adoptive mother
Unnamed adoptive father
Ronaan Wisespeaker [adoptive brother]|affiliation=The Banes of Thunder|race=Half-Elf, Half-Orc|class=Barbarian|age=16|hometown=Neverwinter|name=Helu|Player=Bones|player=Bones|subclass=Wild Magic|str=18 [+4]|dex=14 [+2]|con=16 [+3]|wis=15 [+1]|int=12 [+1]|cha=12 [+1]|image=Helu.png}}
== Appearance ==
<br />
== History ==
<br />
== Notable Items ==
* Hat of Disguise
* Clockwork Amulet
* Bag of Devouring
* Half of the crown of Neverwinter
<br />
== Additional Companions ==
* Wild magic flumph
* Amadán
== Trivia ==
[[Category:The Party]]
a54a428a7b39b2e24409263c4a4ab5613dddd0cc
File:Helu.png
6
151
176
2022-05-10T14:55:49Z
Gingerdanger
2
Art by @jupiter-amore
wikitext
text/x-wiki
== Summary ==
Art by @jupiter-amore
484387269de3818687c6d5d7a48c6353b0ab225a
File:Marcus.png
6
152
177
2022-05-10T14:56:06Z
Gingerdanger
2
Art by @jupiter-amore
wikitext
text/x-wiki
== Summary ==
Art by @jupiter-amore
484387269de3818687c6d5d7a48c6353b0ab225a
File:Sedge.png
6
153
178
2022-05-10T14:56:21Z
Gingerdanger
2
Art by @jupiter-amore
wikitext
text/x-wiki
== Summary ==
Art by @jupiter-amore
484387269de3818687c6d5d7a48c6353b0ab225a
File:Blossom.png
6
154
179
2022-05-10T14:56:36Z
Gingerdanger
2
Art by @jupiter-amore
wikitext
text/x-wiki
== Summary ==
Art by @jupiter-amore
484387269de3818687c6d5d7a48c6353b0ab225a
File:Fen.png
6
155
180
2022-05-10T14:56:56Z
Gingerdanger
2
Art by @jupiter-amore
wikitext
text/x-wiki
== Summary ==
Art by @jupiter-amore
484387269de3818687c6d5d7a48c6353b0ab225a
File:Lichen.png
6
156
181
2022-05-10T14:58:44Z
Gingerdanger
2
Art by @jupiter-amore
wikitext
text/x-wiki
== Summary ==
Art by @jupiter-amore
484387269de3818687c6d5d7a48c6353b0ab225a
Template:Character
10
9
20
19
2022-05-10T15:04:27Z
Gingerdanger
2
wikitext
text/x-wiki
<includeonly><infobox type="Character">
<title source="name"/>
<image source="image">
<caption source="imagecaption" />
</image>
<group>
<data source="aliases"><label>Aliases</label></data>
<data source="relatives"><label>Relatives</label></data>
<data source="affiliation"><label>Affiliation</label></data>
<data source="age"><label>Age</label></data>
<data source="hometown"><label>Hometown</label></data>
<data source="player"><label>Player</label></data>
</group>
<group>
<header>PC Stats</header>
<data source="race"><label>Race</label></data>
<data source="class"><label>Class</label></data>
<data source="subclass"><label>Subclass</label></data>
<data source="str"><label>STR</label></data>
<data source="dex"><label>DEX</label></data>
<data source="con"><label>CON</label></data>
<data source="wis"><label>WIS</label></data>
<data source="int"><label>INT</label></data>
<data source="cha"><label>CHA</label></data>
</group>
</infobox>{{#ifeq: {{NAMESPACENUMBER}} | 0 | [[Category:Characters]]}}</includeonly><noinclude>{{Documentation}}</noinclude>
5475ed0e544365dec4cf7a14ac0289f7bf86c305
Marcus Blackblood
0
157
182
2022-05-10T15:08:59Z
Gingerdanger
2
Created page with "== Appearance == == History == == Trivia =="
wikitext
text/x-wiki
== Appearance ==
== History ==
== Trivia ==
85b6d9bc5f71daa115c342214d43b33ef343354f
183
182
2022-05-10T15:15:49Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|name=Marcus Blackblood|image=Marcus.png|aliases=PC Richard|relatives=Unnamed wife|affiliation=The Banes of Thunder|age=17 (currently)
22 (formerly)|hometown=Neverwinter|player=Justin|race=Zariel Tiefling|class=Warlock|subclass=The Great Old One|str=10 [+0]|dex=16 [+3]|con=14 [+2]|wis=13 [+1]|int=12 [+1]|cha=20 [+5]}}
== Appearance ==
== History ==
== Notable Items ==
* [https://roll20.net/compendium/dnd5e/Gauntlets%20of%20Ogre%20Power#content Gauntlets of Ogre Power]
== Additional Companions ==
* Stinky
* Papyrus
* Larka Barka
* Swiftheart (Swifty)
== Trivia ==
8d5d89b3f356235f0b03ed560a1bea23a2308565
184
183
2022-05-10T17:19:46Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|name=Marcus Blackblood|image=Marcus.png|aliases=PC Richard|relatives=Unnamed wife|affiliation=The Banes of Thunder|age=17 (currently)
20 (formerly)|hometown=Neverwinter|player=Justin|race=Zariel Tiefling|class=Warlock|subclass=The Great Old One|str=10 [+0]|dex=16 [+3]|con=14 [+2]|wis=13 [+1]|int=12 [+1]|cha=20 [+5]}}
== Appearance ==
== History ==
== Notable Items ==
* [https://roll20.net/compendium/dnd5e/Gauntlets%20of%20Ogre%20Power#content Gauntlets of Ogre Power]
== Additional Companions ==
* Stinky
* Papyrus
* Larka Barka
* Swiftheart (Swifty)
== Trivia ==
a2c5570c8715c0ce633ab6a7e1611a5561083549
185
184
2022-05-10T20:49:09Z
Gingerdanger
2
Adding categories
wikitext
text/x-wiki
{{Character|name=Marcus Blackblood|image=Marcus.png|aliases=PC Richard|relatives=Unnamed wife|affiliation=The Banes of Thunder|age=17 (currently)
20 (formerly)|hometown=Neverwinter|player=Justin|race=Zariel Tiefling|class=Warlock|subclass=The Great Old One|str=10 [+0]|dex=16 [+3]|con=14 [+2]|wis=13 [+1]|int=12 [+1]|cha=20 [+5]}}
== Appearance ==
== History ==
== Notable Items ==
* [https://roll20.net/compendium/dnd5e/Gauntlets%20of%20Ogre%20Power#content Gauntlets of Ogre Power]
== Additional Companions ==
* Stinky
* Papyrus
* Larka Barka
* Swiftheart (Swifty)
== Trivia ==
[[Category:The Party]]
4043ce504d9ae550dbb61f7da2500fa8a9d587a3
Blossom
0
158
188
2022-05-10T15:19:08Z
Gingerdanger
2
Created page with "BLOSSOM"
wikitext
text/x-wiki
BLOSSOM
f89ed60e4698d6d3c29ef94603bd3ac34a762854
189
188
2022-05-10T15:22:01Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|name=Blossom|image=Blossom.png|relatives=Unknown|affiliation=The Banes of Thunder|age=Unknown|hometown=Unknown|player=Kate|race=Eladrin|class=Sorcerer|subclass=Wild Magic|str=9 [-1]|dex=16 [+3]|con=15 [+2]|wis=13 [+1]|int=12 [+1]|cha=19 [+4]}}
== Appearance ==
== History ==
== Notable Items ==
* Elven Chain
* Immovable Rod
* Hat of Wizardry
== Additional Companions ==
* Craic
== Trivia ==
78292ec614902cae0754c3835b3b8ced7b5238ee
190
189
2022-05-10T16:14:23Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|name=Blossom|image=Blossom.png|relatives=Unknown|affiliation=The Banes of Thunder|age=Unknown|hometown=Unknown|player=Kate|race=Eladrin|class=Sorcerer|subclass=Wild Magic|str=9 [-1]|dex=16 [+3]|con=15 [+2]|wis=13 [+1]|int=12 [+1]|cha=19 [+4]}}
== Appearance ==
== History ==
=== Before joining the party ===
Much of Blossom's history from before joining the Banes of Thunder is unknown, as she suffers from amnesia.
<br />
== Notable Items ==
* Elven Chain
* Immovable Rod
* Hat of Wizardry
== Additional Companions ==
* Craic
== Trivia ==
804a3141866681de408a6adde53df398d15b7cda
191
190
2022-05-10T20:49:19Z
Gingerdanger
2
Adding categories
wikitext
text/x-wiki
{{Character|name=Blossom|image=Blossom.png|relatives=Unknown|affiliation=The Banes of Thunder|age=Unknown|hometown=Unknown|player=Kate|race=Eladrin|class=Sorcerer|subclass=Wild Magic|str=9 [-1]|dex=16 [+3]|con=15 [+2]|wis=13 [+1]|int=12 [+1]|cha=19 [+4]}}
== Appearance ==
== History ==
=== Before joining the party ===
Much of Blossom's history from before joining the Banes of Thunder is unknown, as she suffers from amnesia.
<br />
== Notable Items ==
* Elven Chain
* Immovable Rod
* Hat of Wizardry
== Additional Companions ==
* Craic
== Trivia ==
[[Category:The Party]]
08e349e81abfc0513ed5182ab12d870777d5f203
Sedge Thistlestrike
0
159
196
2022-05-10T15:23:56Z
Gingerdanger
2
Created page with "== Appearance == == History == == Notable Items == * Dragon Slayer Longsword * Goggles of Night * Mithral Chain Mail * Sending Stones * Wand of Pyrotechnics == Additi..."
wikitext
text/x-wiki
== Appearance ==
== History ==
== Notable Items ==
* Dragon Slayer Longsword
* Goggles of Night
* Mithral Chain Mail
* Sending Stones
* Wand of Pyrotechnics
== Additional Companions ==
* Porche
== Trivia ==
782e6bb862a4771c700953deeed0ba277f82827e
197
196
2022-05-10T15:26:22Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|name=Sedge Thistlestrike|image=Sedge.png|aliases=Sun/Son
Don|relatives=Unnamed Father
Unnamed Mother|affiliation=The Banes of Thunder|age=25|hometown=Candlekeep|player=Ike|race=Kalashtar|class=Paladin|subclass=Oath of Devotion|str=17 [+3]|dex=9 [-1]|con=12 [+1]|wis=15 [+2]|int=13 [+1]|cha=17 [+3]}}
== Appearance ==
== History ==
== Notable Items ==
* Dragon Slayer Longsword
* Goggles of Night
* Mithral Chain Mail
* Sending Stones
* Wand of Pyrotechnics
== Additional Companions ==
* Porche
== Trivia ==
3d4bdd22673a4277e98c8a9d79cba845234b2ccb
198
197
2022-05-10T20:49:33Z
Gingerdanger
2
Adding categories
wikitext
text/x-wiki
{{Character|name=Sedge Thistlestrike|image=Sedge.png|aliases=Sun/Son
Don|relatives=Unnamed Father
Unnamed Mother|affiliation=The Banes of Thunder|age=25|hometown=Candlekeep|player=Ike|race=Kalashtar|class=Paladin|subclass=Oath of Devotion|str=17 [+3]|dex=9 [-1]|con=12 [+1]|wis=15 [+2]|int=13 [+1]|cha=17 [+3]}}
== Appearance ==
== History ==
== Notable Items ==
* Dragon Slayer Longsword
* Goggles of Night
* Mithral Chain Mail
* Sending Stones
* Wand of Pyrotechnics
== Additional Companions ==
* Porche
== Trivia ==
[[Category:The Party]]
e3339fa1bb64ecf540ab2b807e8b675105d536fb
Eilif Crimsonlight
0
160
199
2022-05-10T15:29:54Z
Gingerdanger
2
Created page with "== Appearance == == History == == Notable Items == * Shatterspike == Additional Companions == * Shitake (Shit) == Trivia =="
wikitext
text/x-wiki
== Appearance ==
== History ==
== Notable Items ==
* Shatterspike
== Additional Companions ==
* Shitake (Shit)
== Trivia ==
733b276f098fc35e0c05302248d18cf72ec082c0
200
199
2022-05-10T15:56:07Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|name=Eilif Crimsonlight|image=Eilif.png|relatives=Unnamed Mother
Unnamed Father|affiliation=The Banes of Thunder|hometown=Unknown|player=Wing|race=Half-elf|class=Fighter|subclass=Echo Knight|str=20 [+5]|dex=16 [+3]|con=18 [+4]|wis=12 [+1]|int=13 [+1]|cha=9 [-1]}}
== Appearance ==
== History ==
== Notable Items ==
* Shatterspike
== Additional Companions ==
* Shitake (Shit)
== Trivia ==
23c2d682d99adddaba94d0d5460a7c788a98b51f
201
200
2022-05-10T20:50:07Z
Gingerdanger
2
Adding categories
wikitext
text/x-wiki
{{Character|name=Eilif Crimsonlight|image=Eilif.png|relatives=Unnamed Mother
Unnamed Father|affiliation=The Banes of Thunder|hometown=Unknown|player=Wing|race=Half-elf|class=Fighter|subclass=Echo Knight|str=20 [+5]|dex=16 [+3]|con=18 [+4]|wis=12 [+1]|int=13 [+1]|cha=9 [-1]}}
== Appearance ==
== History ==
== Notable Items ==
* Shatterspike
== Additional Companions ==
* Shitake (Shit)
== Trivia ==
[[Category:The Party]]
84a0b41367b20cbb3056ab348d64cfec783b9efc
File:Eilif.png
6
161
202
2022-05-10T15:55:11Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Fen Melody
0
162
203
2022-05-10T19:05:22Z
Gingerdanger
2
Created page with "== Appearance == == History == == Trivia =="
wikitext
text/x-wiki
== Appearance ==
== History ==
== Trivia ==
2f3723afdd57e829362e86bd7fdfb9afcf6ac037
204
203
2022-05-10T19:06:41Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|name=Fen Melody|image=fen.png|relatives=Unnamed mother
Unnamed father|affiliation=The Banes of Thunder (formerly)|hometown=Neverwinter|player=Shy|race=Half-elf, half-orc|class=Cleric|subclass=Nature Domain}}
== Appearance ==
== History ==
== Trivia ==
1df13396d5f448d539d477cca966bafddfd1e1d5
Lichen
0
163
205
2022-05-10T19:07:47Z
Gingerdanger
2
Created page with "== Appearance == == History == == Notable Items == * Luckstone * Instrument of Illusions == Trivia =="
wikitext
text/x-wiki
== Appearance ==
== History ==
== Notable Items ==
* Luckstone
* Instrument of Illusions
== Trivia ==
3b921ca60918d861064474479ba1429d1dd9e3e5
206
205
2022-05-10T19:41:20Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|name=Lichen|image=Lichen.png|relatives=Unnamed mother
Unnamed step-father
The King of Dragonflies|affiliation=The Banes of Thunder|age=27|hometown=Neverwinter|player=Zelda|race=Tiefling|class=Warlock/Cleric|subclass=The Archfey/Knowledge Domain|str=10 [+0]|dex=11 [+0]|con=14 [+2]|wis=14 [+2]|int=14 [+4]|cha=18 [+4]}}
== Appearance ==
== History ==
== Notable Items ==
* Luckstone
* Instrument of Illusions
== Trivia ==
5b4cd9b7200b592c70626a4868fd7baafffa3c50
207
206
2022-05-10T20:46:48Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|name=Lichen|image=Lichen.png|relatives=Unnamed mother
Unnamed step-father
The King of Dragonflies|affiliation=The Banes of Thunder|age=27|hometown=Neverwinter|player=Zelda|race=Fey Touched Tiefling|class=Warlock/Cleric|subclass=The Archfey/Knowledge Domain|str=10 [+0]|dex=11 [+0]|con=14 [+2]|wis=14 [+2]|int=14 [+4]|cha=18 [+4]}}Lichen is a tiefling from [[Neverwinter]] who made a warlock pact with the [[Archfey]] known as the [[King of Dragonflies]]. She joined the [[The Banes of Thunder|Banes of Thunder]] shortly after they defeated [[Gorthok]], only to disappear from [[Icespire Hold]] after she and the others defeated [[Cryovain]].
== Appearance ==
Lichen is a tiefling with green skin, pointed ears, and blue hair. Her horns spiral upward and are covered with small vines and flowers. Rather than feet, she has hooves, much like a satyr's, and she has a tail with a spade-shaped pointed tip. She wears a purple top and purple pants, along with a brown jacket. Around her neck is a velvet choker set with a large ruby gemstone that functions as her pact amulet.
== History ==
=== Before joining the party ===
Lichen and her mother moved to Neverwinter when she was 3, where her mother became a music teacher for the temple of Milil and for private households. Previously, her mother was a traveler, where she presumably met Lichen's father. Lichen grew up in and around the temple of Milil with her mother, her step-father, and her 2 step-siblings.
When she was in her early twenties, her mother gifted her the ruby choker she now wears, claiming that it had been Lichen's father's. When she put it on, she began to speak to an entity who claimed to be her father. He introduced himself as the King of Dragonflies. He later gave her a message to give to the group known as the Banes of Thunder, and requested that she travel with them to see the world beyond Neverwinter.
=== After joining the party ===
Lichen met the party at the Stone-hill Inn in [[Phandalin]], where she gave them the message and requested to join them. Though they were hesitant at first, she accompanied them as they went to Axeholm to secure a safe haven in the event of a dragon attack. Later, when the party went to the Dragon Barrow, she helped fend off bounty hunters and sent the last hunter to the Feywild with the centaur [[Xanth]].
Lichen and the rest of the party made the climb up to Icespire Hold to take down Cryovain. After the fight, she disappeared along with [[Ronaan]], presumably into the [[Feywild]].
Her last known location was somewhere on the sea as reported by the King of Dragonflies.
== Notable Items ==
* Luckstone
* Instrument of Illusions
== Trivia ==
* While her race is mechanically similar to a variant tiefling, it was reflavored to fit the Fey themes of her backstory and class. Thus her wings are dragonfly wings, and her fire resistance was changed to a poison resistance.
5c5af81a62130eb7fb830c7e8dc9664cd27a042b
The Crown of Neverwinter
0
164
208
2022-05-12T15:29:58Z
Gingerdanger
2
Created page with "== Appearance == == History == == Trivia =="
wikitext
text/x-wiki
== Appearance ==
== History ==
== Trivia ==
2f3723afdd57e829362e86bd7fdfb9afcf6ac037
209
208
2022-05-12T15:32:55Z
Gingerdanger
2
wikitext
text/x-wiki
{{Item|image=Mr-darwenstreet-crownuplox.jpg}}
== Appearance ==
== History ==
== Trivia ==
ce072a7df0bcf3bad344929f3c09ef1089776fd9
File:Mr-darwenstreet-crownuplox.jpg
6
165
210
2022-05-12T15:32:17Z
Gingerdanger
2
Art by https://www.artstation.com/mrdarwenstreet
wikitext
text/x-wiki
== Summary ==
Art by https://www.artstation.com/mrdarwenstreet
16cf15439c96abd74bab8ff7e518d473764e97a5
File:CrownofNeverwinter.webp
6
166
211
2022-05-12T15:38:38Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Sword Coast.jpg
6
167
212
2022-05-12T15:47:49Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Neverwinter.jpg
6
168
213
2022-05-12T15:48:23Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Marcus wanted poster.png
6
169
214
2022-05-12T15:48:58Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:The Feywild.jpg
6
170
215
2022-05-12T15:50:55Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
The Sword Coast
0
171
216
2022-05-12T15:53:04Z
Gingerdanger
2
Created page with "== History == == Settlements == == Important NPCs == == Trivia =="
wikitext
text/x-wiki
== History ==
== Settlements ==
== Important NPCs ==
== Trivia ==
71e9891c3fa37a6b0cda59411ba28c175d4eff8c
217
216
2022-05-12T15:55:55Z
Gingerdanger
2
wikitext
text/x-wiki
{{Location|image=Sword Coast.jpg}}
== History ==
== Settlements & Locations ==
=== Settlements ===
* Neverwinter
* Phandalin
* Leilon
=== Locations ===
* Butterskull Ranch
* Axeholm
* Dragon Barrow
* Icespire Hold
* Logger's Camp
* Falcon's Hunting Lodge
* Tower of Storms
* Woodland Manse
== Important NPCs ==
== Trivia ==
7c2ed9b760292bec4e7c1d35dcadc2c8d06d64d0
218
217
2022-05-12T15:56:19Z
Gingerdanger
2
/* Settlements */
wikitext
text/x-wiki
{{Location|image=Sword Coast.jpg}}
== History ==
== Settlements & Locations ==
=== Settlements ===
* [[Neverwinter]]
* [[Phandalin]]
* Leilon
=== Locations ===
* Butterskull Ranch
* Axeholm
* Dragon Barrow
* Icespire Hold
* Logger's Camp
* Falcon's Hunting Lodge
* Tower of Storms
* Woodland Manse
== Important NPCs ==
== Trivia ==
ae11387762209105132de9d744d3c265444d9ae8
219
218
2022-05-12T16:04:13Z
Gingerdanger
2
wikitext
text/x-wiki
{{Location|image=Sword Coast (Full).jpg}}
== History ==
== Settlements & Locations ==
=== Settlements ===
* [[Neverwinter]]
* [[Phandalin]]
* Leilon
* Umbrage Hill
* Butterskull Ranch
* Gnomengarde
* Falcon's Hunting Lodge
=== Locations ===
* Conyberry
* Mountain's Toe Gold Mine
* Axeholm
* Dragon Barrow
* Icespire Hold
* Logger's Camp
* Tower of Storms
* Woodland Manse
* Dwarven Excavation
* Shrine of Savras
* Circle of Thunder
== Important NPCs ==
== Trivia ==
cc87f487a6eaf6120d26396e9acc786d3679ff05
220
219
2022-05-12T16:07:01Z
Gingerdanger
2
Adding categories
wikitext
text/x-wiki
{{Location|image=Sword Coast (Full).jpg}}
== History ==
== Settlements & Locations ==
=== Settlements ===
* [[Neverwinter]]
* [[Phandalin]]
* Leilon
* Umbrage Hill
* Butterskull Ranch
* Gnomengarde
* Falcon's Hunting Lodge
=== Locations ===
* Conyberry
* Mountain's Toe Gold Mine
* Axeholm
* Dragon Barrow
* Icespire Hold
* Logger's Camp
* Tower of Storms
* Woodland Manse
* Dwarven Excavation
* Shrine of Savras
* Circle of Thunder
== Important NPCs ==
== Trivia ==
[[Category:Sword Coast]]
f534db69a5af1f8bed504ec3187e087c3d541dcd
221
220
2022-05-12T16:09:15Z
Gingerdanger
2
wikitext
text/x-wiki
{{Location|image=Sword Coast (Full).jpg|imagecaption=The Sword Coast|location=Faerun}}
== History ==
== Settlements & Locations ==
=== Settlements ===
* [[Neverwinter]]
* [[Phandalin]]
* Leilon
* Umbrage Hill
* Butterskull Ranch
* Gnomengarde
* Falcon's Hunting Lodge
=== Locations ===
* Conyberry
* Mountain's Toe Gold Mine
* Axeholm
* Dragon Barrow
* Icespire Hold
* Logger's Camp
* Tower of Storms
* Woodland Manse
* Dwarven Excavation
* Shrine of Savras
* Circle of Thunder
== Important NPCs ==
== Trivia ==
[[Category:Sword Coast]]
b55abf061130f4d6ec4f59d6671899f45f27c40a
File:Sword Coast (Full).jpg
6
172
222
2022-05-12T15:56:56Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Neverwinter
0
173
223
2022-05-12T16:07:42Z
Gingerdanger
2
Created page with "== History == == Districts == == Locations == == Important NPCs == == Trivia =="
wikitext
text/x-wiki
== History ==
== Districts ==
== Locations ==
== Important NPCs ==
== Trivia ==
ac7048d967105e2700be275e7253dddb074d0bdc
224
223
2022-05-12T16:08:29Z
Gingerdanger
2
wikitext
text/x-wiki
{{Location|image=Neverwinter.jpg|imagecaption=Neverwinter|location=The Sword Coast}}
== History ==
== Districts ==
== Locations ==
== Important NPCs ==
== Trivia ==
58d1b6a07c2048b75faa9befdcb1aaee2e4e32f8
225
224
2022-05-12T16:08:48Z
Gingerdanger
2
wikitext
text/x-wiki
{{Location|image=Neverwinter.jpg|imagecaption=Neverwinter|location=[[The Sword Coast]]}}
== History ==
== Districts ==
== Locations ==
== Important NPCs ==
== Trivia ==
8ef407ec0e80b0968dce4e2cc1142e468ec814c4
Phandalin
0
174
226
2022-05-12T16:09:41Z
Gingerdanger
2
Created page with "== History == == Locations == == Important NPCs == == Trivia =="
wikitext
text/x-wiki
== History ==
== Locations ==
== Important NPCs ==
== Trivia ==
9d888bb3bf58f3613327dd3452995abec0ccc9a4
227
226
2022-05-12T16:13:30Z
Gingerdanger
2
wikitext
text/x-wiki
{{Location|image=Phandalin.jpg|imagecaption=Phandalin|location=[[The Sword Coast]]}}
== History ==
== Locations ==
* Stonehill Inn
* Barthen's Provisions
* Shrine of Luck
* Townmaster's Hall
* Phandalin Miner's Exchange
* Lionshield Coster
== Important NPCs ==
* Townmaster Harbin Wester
* Halia Thornton
* Linene Graywind
* Elmar Barthen
* Smith Smithson
== Trivia ==
dcc6b8ba7821fcbbb1ed852b5c87a1f9b18495a6
File:Phandalin.jpg
6
175
228
2022-05-12T16:10:59Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Courts of the Fey
0
176
229
2022-05-12T16:47:47Z
Gingerdanger
2
Created page with "Many of the residents of the Feywild find themselves under the rule of one of the Courts: a hierarchy of fey and Archfey that hold power over the land itself and the people li..."
wikitext
text/x-wiki
Many of the residents of the Feywild find themselves under the rule of one of the Courts: a hierarchy of fey and Archfey that hold power over the land itself and the people living within.
== The Summer Court ==
One of the three central courts, the Summer Court is the court of the Seelie Fey, and is ruled by Queen Titania and Lord Oberon in Senaliesse. Other archfeys of the Summer Court include:
* The Summer Queen, Queen Titania
* The Green Lord, Lord Oberon
* The Lord of Light
* The Ildanach
* Lord of the Hunt
=== Other Archfey ===
Some archfeys are not considered a part of the Court, though they may still hold close ties to either the Court as a whole, or to a particular archfey. These include:
* The Lady of Starlight, Shandria
=== The Green Court ===
The Green Court, also known as the Spring Court, while loyal to the Summer Court, is a Court in and of itself. It is lead by the Maiden Monarch, and its seat of power is located in the Maze of Fathagn, where it presides over dryads, treants, and other creatures tied to nature. Other archfeys include:
* Maiden Monarch
* The Lord of Bats
* The Unicorn Queen
* The Infinite Branches
== The Gloaming Court ==
The Gloaming Court is the Summer Court's equal and opposite as one of the three central courts of the Feywild. It is the court of the Unseelie Fey, and it is ruled solely by the Queen of Air and Darkness. Other archfey include:
* The Queen of Air and Darkness, Queen Mab
* Prince of Hearts
* The Great Witch
* The White Knight
* The Banshee Queen
* Oracle of Doom
* Mistress of Midnight Teeth
== The Court of Silver ==
6e2256e95c486905ec03e8e37cd52478467da38d
230
229
2022-05-12T17:11:00Z
Gingerdanger
2
/* The Court of Silver */
wikitext
text/x-wiki
Many of the residents of the Feywild find themselves under the rule of one of the Courts: a hierarchy of fey and Archfey that hold power over the land itself and the people living within.
== The Summer Court ==
One of the three central courts, the Summer Court is the court of the Seelie Fey, and is ruled by Queen Titania and Lord Oberon in Senaliesse. Its influence extends over the cities of Mithrendain and Shinelestra, and has ties to the city of Astrazalian. Other archfeys of the Summer Court include:
* The Summer Queen, Queen Titania
* The Green Lord, Lord Oberon
* The Lord of Light
* The Ildanach
* Lord of the Hunt
=== Other Archfey ===
Some archfeys are not considered a part of the Court, though they may still hold close ties to either the Court as a whole, or to a particular archfey. These include:
* The Lady of Starlight, Shandria
=== The Green Court ===
The Green Court, also known as the Spring Court, while loyal to the Summer Court, is a Court in and of itself. It is lead by the Maiden Monarch, and its seat of power is located in the Maze of Fathagn, where it presides over dryads, treants, and other creatures tied to nature. Other archfeys include:
* Maiden Monarch
* The Lord of Bats
* The Unicorn Queen
* The Infinite Branches
== The Gloaming Court ==
The Gloaming Court is the Summer Court's equal and opposite as one of the three central courts of the Feywild. It is the court of the Unseelie Fey, and it is ruled solely by the Queen of Air and Darkness. Other archfey include:
* The Queen of Air and Darkness, Queen Mab
* Prince of Hearts
* The White Knight
* The Great Witch
* Oracle of Doom
* Mistress of Midnight Teeth
=== The Winter Court ===
The Winter Court is the most well-known under the Gloaming Court for many reasons, but not all of them are the right reasons. It was once ruled by the Prince of Frost, but during an exchange of power the Prince severed all ties with the Winter Court and Queen Mab. Now it is controlled by the Queen of Night and Magic, Queen Mab's daughter.
* The Queen of Night and Magic
* The Morrigan
* The Snow Queen
* The Banshee Queen
=== The Autumn Court ===
* The Pumpkin King
* Prince of Hearts
* The Ashen Lady
* The Blight Lord
== The Court of Silver ==
The Court of Silver is a relatively new addition to the Court of the Feywild, but rose to power in the last few centuries as a third major power to the Summer and Gloaming Courts. It presides over all Neutral Fey, those neither Seelie nor Unseelie, and is ruled by the Lord of Silver in Brokenstone. Other archfey include:
* The Lord of Silver
* Prince of Frost
* The Nighthearth
* The Mask of Seasons
* The Moonspeaker
The Court of Silver's relationship with the lesser Courts is unique. The Lord of Silver still does not have enough power to exert direct control, so there is a mutual understanding between the Court of Silver and its associated Courts
=== The Court of Coral ===
Even beneath the sea, there are archfey who operate on their own agendas. These archfey form the Court of Coral, ruled by the Coral Crown, who agreed to ally themselves with the Court of Silver to avoid assimilation under the Summer and Gloaming Courts.
* The Coral Crown
* Lord of the Deep
* Lady of the Lake
* The River King
* The Gatekeeper
de51289b2d101f5936989719fede5e9abbe39c20
231
230
2022-05-13T15:49:40Z
Gingerdanger
2
wikitext
text/x-wiki
Many of the residents of the Feywild find themselves under the rule of one of the Courts: a hierarchy of fey and Archfey that hold power over the land itself and the people living within.
== The Summer Court ==
One of the three central courts, the Summer Court is the court of the Seelie Fey, and is ruled by Queen Titania and Lord Oberon in Senaliesse. Its influence extends over the cities of Mithrendain and Shinelestra, and has ties to the city of Astrazalian. Other archfeys of the Summer Court include:
* The Summer Queen, Queen Titania
* The Green Lord, Lord Oberon
* The Lord of Light
* The Ildanach
* Lord of the Hunt
=== Other Archfey ===
Some archfeys are not considered a part of the Court, though they may still hold close ties to either the Court as a whole, or to a particular archfey. These include:
* The Lady of Starlight, Shandria
=== The Green Court ===
The Green Court, also known as the Spring Court, while loyal to the Summer Court, is a Court in and of itself. It is lead by the Maiden Monarch, and its seat of power is located in the Maze of Fathagn, where it presides over dryads, treants, and other creatures tied to nature. Other archfeys include:
* Maiden Monarch
* The Lord of Bats
* The Unicorn Queen
* The Infinite Branches
== The Gloaming Court ==
The Gloaming Court is the Summer Court's equal and opposite as one of the three central courts of the Feywild. It is the court of the Unseelie Fey, and it is ruled solely by the Queen of Air and Darkness. Other archfey include:
* The Queen of Air and Darkness, Queen Mab
* Prince of Hearts
* The White Knight
* The Great Witch
* Oracle of Doom
* Mistress of Midnight Teeth
=== The Winter Court ===
The Winter Court is the most well-known under the Gloaming Court for many reasons, but not all of them are the right reasons. It was once ruled by the Prince of Frost, but during an exchange of power the Prince severed all ties with the Winter Court and Queen Mab. Now it is controlled by the Queen of Night and Magic, Queen Mab's daughter.
* The Queen of Night and Magic
* The Morrigan
* The Snow Queen
* The Banshee Queen
=== The Autumn Court ===
* The Pumpkin King
* Prince of Hearts
* The Ashen Lady
* The Blight Lord
== The Court of Silver ==
The Court of Silver is a relatively new addition to the Court of the Feywild, but rose to power in the last few centuries as a third major power to the Summer and Gloaming Courts. It presides over all Neutral Fey, those neither Seelie nor Unseelie, and is ruled by the Lord of Silver in Brokenstone. Other archfey include:
* The Lord of Silver
* Prince of Frost
* The Nighthearth
* The Mask of Seasons
* The Moonspeaker
=== Other Archfey ===
While not an official part of the Court of Silver, there js another archfey that is considered directly tied to the Court. This archfey is '''The Shattered Sovereign''', who rules in the depths of Cendriane, though she is rarely outside her home.
While not an official part of the Court of Silver, there js another archfey that is considered directly tied to the Court. This archfey is '''The Shattered Sovereign''', who rules in the depths of Cendriane, though she is rarely outside her home.
=== The Court of Coral ===
Even beneath the sea, there are archfey who operate on their own agendas. These archfey form the Court of Coral, ruled by the Coral Crown, who agreed to ally themselves with the Court of Silver to avoid assimilation under the Summer and Gloaming Courts. In this way, the Court of Silver cannot exert direct control over the Court of Coral.
* The Coral Crown
* Lord of the Deep
* Lady of the Lake
* The River King
* The Gatekeeper
bc91dc6a3def6c9b8ef05a9a14b64c40fb8b2f9f
232
231
2022-05-13T15:50:38Z
Gingerdanger
2
wikitext
text/x-wiki
Many of the residents of the Feywild find themselves under the rule of one of the Courts: a hierarchy of fey and Archfey that hold power over the land itself and the people living within.
== The Summer Court ==
One of the three central courts, the Summer Court is the court of the Seelie Fey, and is ruled by Queen Titania and Lord Oberon in Senaliesse. Its influence extends over the cities of Mithrendain and Shinelestra, and has ties to the city of Astrazalian. Other archfeys of the Summer Court include:
* The Summer Queen, Queen Titania
* The Green Lord, Lord Oberon
* The Lord of Light
* The Ildanach
* Lord of the Hunt
=== Other Archfey ===
Some archfeys are not considered a part of the Court, though they may still hold close ties to either the Court as a whole, or to a particular archfey. These include:
* The Lady of Starlight, Shandria
=== The Green Court ===
The Green Court, also known as the Spring Court, while loyal to the Summer Court, is a Court in and of itself. It is lead by the Maiden Monarch, and its seat of power is located in the Maze of Fathagn, where it presides over dryads, treants, and other creatures tied to nature. Other archfeys include:
* Maiden Monarch
* The Lord of Bats
* The Unicorn Queen
* The Infinite Branches
== The Gloaming Court ==
The Gloaming Court is the Summer Court's equal and opposite as one of the three central courts of the Feywild. It is the court of the Unseelie Fey, and it is ruled solely by the Queen of Air and Darkness. Other archfey include:
* The Queen of Air and Darkness, Queen Mab
* Prince of Hearts
* The White Knight
* The Great Witch
* Oracle of Doom
* Mistress of Midnight Teeth
=== The Winter Court ===
The Winter Court is the most well-known under the Gloaming Court for many reasons, but not all of them are the right reasons. It was once ruled by the Prince of Frost, but during an exchange of power the Prince severed all ties with the Winter Court and Queen Mab. Now it is controlled by the Queen of Night and Magic, Queen Mab's daughter.
* The Queen of Night and Magic
* The Morrigan
* The Snow Queen
* The Banshee Queen
=== The Autumn Court ===
* The Pumpkin King
* Prince of Hearts
* The Ashen Lady
* The Blight Lord
== The Court of Silver ==
The Court of Silver is a relatively new addition to the Court of the Feywild, but rose to power in the last few centuries as a third major power to the Summer and Gloaming Courts. It presides over all Neutral Fey, those neither Seelie nor Unseelie, and is ruled by the Lord of Silver in Brokenstone. Other archfey include:
* The Lord of Silver
* Prince of Frost
* The Nighthearth
* The Mask of Seasons
* The Moonspeaker
=== Other Archfey ===
While not an official part of the Court of Silver, there js another archfey that is considered directly tied to the Court. This archfey is known as '''the Shattered Sovereign''', who rules in the depths of Cendriane, though she is rarely outside her home.
While not an official part of the Court of Silver, there js another archfey that is considered directly tied to the Court. This archfey is '''The Shattered Sovereign''', who rules in the depths of Cendriane, though she is rarely outside her home.
=== The Court of Coral ===
Even beneath the sea, there are archfey who operate on their own agendas. These archfey form the Court of Coral, ruled by the Coral Crown, who agreed to ally themselves with the Court of Silver to avoid assimilation under the Summer and Gloaming Courts. In this way, the Court of Silver cannot exert direct control over the Court of Coral.
* The Coral Crown
* Lord of the Deep
* Lady of the Lake
* The River King
* The Gatekeeper
a1dff62551a237a330ca14c294d74f71b2466851
233
232
2022-05-13T15:51:22Z
Gingerdanger
2
wikitext
text/x-wiki
Many of the residents of the Feywild find themselves under the rule of one of the Courts: a hierarchy of fey and Archfey that hold power over the land itself and the people living within.
== The Summer Court ==
One of the three central courts, the Summer Court is the court of the Seelie Fey, and is ruled by Queen Titania and Lord Oberon in Senaliesse. Its influence extends over the cities of Mithrendain and Shinelestra, and has ties to the city of Astrazalian. Other archfeys of the Summer Court include:
* The Summer Queen, Queen Titania
* The Green Lord, Lord Oberon
* The Lord of Light
* The Ildanach
* Lord of the Hunt
=== Other Archfey ===
Some archfeys are not considered a part of the Court, though they may still hold close ties to either the Court as a whole, or to a particular archfey. These include:
* The Lady of Starlight, Shandria
=== The Green Court ===
The Green Court, also known as the Spring Court, while loyal to the Summer Court, is a Court in and of itself. It is lead by the Maiden Monarch, and its seat of power is located in the Maze of Fathagn, where it presides over dryads, treants, and other creatures tied to nature. Other archfeys include:
* Maiden Monarch
* The Lord of Bats
* The Unicorn Queen
* The Infinite Branches
== The Gloaming Court ==
The Gloaming Court is the Summer Court's equal and opposite as one of the three central courts of the Feywild. It is the court of the Unseelie Fey, and it is ruled solely by the Queen of Air and Darkness. Other archfey include:
* The Queen of Air and Darkness, Queen Mab
* Prince of Hearts
* The White Knight
* The Great Witch
* Oracle of Doom
* Mistress of Midnight Teeth
=== The Winter Court ===
The Winter Court is the most well-known under the Gloaming Court for many reasons, but not all of them are the right reasons. It was once ruled by the Prince of Frost, but during an exchange of power the Prince severed all ties with the Winter Court and Queen Mab. Now it is controlled by the Queen of Night and Magic, Queen Mab's daughter.
* The Queen of Night and Magic
* The Morrigan
* The Snow Queen
* The Banshee Queen
=== The Autumn Court ===
* The Pumpkin King
* Prince of Hearts
* The Ashen Lady
* The Blight Lord
== The Court of Silver ==
The Court of Silver is a relatively new addition to the Court of the Feywild, but rose to power in the last few centuries as a third major power to the Summer and Gloaming Courts. It presides over all Neutral Fey, those neither Seelie nor Unseelie, and is ruled by the Lord of Silver in Brokenstone. Other archfey include:
* The Lord of Silver
* Prince of Frost
* The Nighthearth
* The Mask of Seasons
* The Moonspeaker
=== Other Archfey ===
While not an official part of the Court of Silver, there js another archfey that is considered directly tied to the Court. This archfey is known as '''the Shattered Sovereign''', who rules in the depths of Cendriane, though she is rarely outside her home.
<br />
=== The Court of Coral ===
Even beneath the sea, there are archfey who operate on their own agendas. These archfey form the Court of Coral, ruled by the Coral Crown, who agreed to ally themselves with the Court of Silver to avoid assimilation under the Summer and Gloaming Courts. In this way, the Court of Silver cannot exert direct control over the Court of Coral.
* The Coral Crown
* Lord of the Deep
* Lady of the Lake
* The River King
* The Gatekeeper
c70d729a455d604ff5ce81de7b7be2a9b6562f25
234
233
2022-05-13T15:55:29Z
Gingerdanger
2
wikitext
text/x-wiki
Many of the residents of the Feywild find themselves under the rule of one of the Courts: a hierarchy of fey and Archfey that hold power over the land itself and the people living within.
== The Summer Court ==
One of the three central courts, the Summer Court is the court of the Seelie Fey, and is ruled by Queen Titania and Lord Oberon in Senaliesse. Its influence extends over the cities of Mithrendain and Shinelestra, and has ties to the city of Astrazalian. Other archfeys of the Summer Court include:
* The Summer Queen, Queen Titania
* The Green Lord, Lord Oberon
* The Lord of Light
* The Ildanach
* Lord of the Hunt
=== Other Archfey ===
Some archfeys are not considered a part of the Court, though they may still hold close ties to either the Court as a whole, or to a particular archfey. These include:
* The Lady of Starlight, Shandria
=== The Green Court ===
The Green Court, also known as the Spring Court, while loyal to the Summer Court, is a Court in and of itself. It is lead by the Maiden Monarch, and its seat of power is located in the Maze of Fathagn, where it presides over dryads, treants, and other creatures tied to nature. Other archfeys include:
* Maiden Monarch
* The Lord of Bats
* The Unicorn Queen
* The Infinite Branches
== The Gloaming Court ==
The Gloaming Court is the Summer Court's equal and opposite as one of the three central courts of the Feywild. It is the court of the Unseelie Fey, and it is ruled solely by the Queen of Air and Darkness. Other archfey include:
* The Queen of Air and Darkness, Queen Mab
* Prince of Hearts
* The White Knight
* The Great Witch
* Oracle of Doom
* Mistress of Midnight Teeth
=== The Winter Court ===
The Winter Court is the most well-known under the Gloaming Court for many reasons, but not all of them are the right reasons. It was once ruled by the Prince of Frost, but during an exchange of power the Prince severed all ties with the Winter Court and Queen Mab. Now it is controlled by the Queen of Night and Magic, Queen Mab's daughter.
* The Queen of Night and Magic
* The Morrigan
* The Snow Queen
* The Banshee Queen
=== The Autumn Court ===
* The Pumpkin King
* Prince of Hearts
* The Ashen Lady
* The Blight Lord
== The Court of Silver ==
The Court of Silver is a relatively new addition to the Court of the Feywild, but rose to power in the last few centuries as a third major power to the Summer and Gloaming Courts. It presides over all Neutral Fey, those neither Seelie nor Unseelie, and is ruled by the Lord of Silver in Brokenstone. Other archfey include:
* The Lord of Silver
* Prince of Frost
* The Nighthearth
* The Mask of Seasons
* The Moonspeaker
=== Other Archfey ===
While not an official part of the Court of Silver, there js another archfey that is considered directly tied to the Court. This archfey is known as '''the Shattered Sovereign''', who rules in the depths of Cendriane, though she is rarely outside her home.
<br />
=== The Court of Coral ===
Even beneath the sea, there are archfey who operate on their own agendas. These archfey form the Court of Coral, ruled by the Coral Crown, who agreed to ally themselves with the Court of Silver to avoid assimilation under the Summer and Gloaming Courts. In this way, the Court of Silver cannot exert direct control over the Court of Coral.
* The Coral Crown
* Lord of the Deep
* Lady of the Lake
* The River King
* The Gatekeeper
== Other Archfey ==
Though the majority of Archfey are tied to the Courts, there are many who drift freely from their rigid heirarchies. These archfey are usually very powerful, if fickle, and often claim relation to gods and deities.
* The White Lady
* The Name
The Name
a6e1a1324d5160a30423b4203e356cad983dd140
235
234
2022-05-13T15:57:15Z
Gingerdanger
2
wikitext
text/x-wiki
Many of the residents of the Feywild find themselves under the rule of one of the Courts: a hierarchy of fey and Archfey that hold power over the land itself and the people living within.
== The Summer Court ==
One of the three central courts, the Summer Court is the court of the Seelie Fey, and is ruled by Queen Titania and Lord Oberon in Senaliesse. Its influence extends over the cities of Mithrendain and Shinelestra, and has ties to the city of Astrazalian. Other archfeys of the Summer Court include:
* The Summer Queen, Queen Titania
* The Green Lord, Lord Oberon
* The Lord of Light
* The Ildanach
* Lord of the Hunt
=== Other Archfey ===
Some archfeys are not considered a part of the Court, though they may still hold close ties to either the Court as a whole, or to a particular archfey. These include:
* The Lady of Starlight, Shandria
=== The Green Court ===
The Green Court, also known as the Spring Court, while loyal to the Summer Court, is a Court in and of itself. It is lead by the Maiden Monarch, and its seat of power is located in the Maze of Fathagn, where it presides over dryads, treants, and other creatures tied to nature. Other archfeys include:
* Maiden Monarch
* The Lord of Bats
* The Unicorn Queen
* The Infinite Branches
== The Gloaming Court ==
The Gloaming Court is the Summer Court's equal and opposite as one of the three central courts of the Feywild. It is the court of the Unseelie Fey, and it is ruled solely by the Queen of Air and Darkness. Other archfey include:
* The Queen of Air and Darkness, Queen Mab
* Prince of Hearts
* The White Knight
* The Great Witch
* Oracle of Doom
* Mistress of Midnight Teeth
=== The Winter Court ===
The Winter Court is the most well-known under the Gloaming Court for many reasons, but not all of them are the right reasons. It was once ruled by the Prince of Frost, but during an exchange of power the Prince severed all ties with the Winter Court and Queen Mab. Now it is controlled by the Queen of Night and Magic, Queen Mab's daughter.
* The Queen of Night and Magic
* The Morrigan
* The Snow Queen
* The Banshee Queen
=== The Autumn Court ===
* The Pumpkin King
* Prince of Hearts
* The Ashen Lady
* The Blight Lord
== The Court of Silver ==
The Court of Silver is a relatively new addition to the Court of the Feywild, but rose to power in the last few centuries as a third major power to the Summer and Gloaming Courts. It presides over all Neutral Fey, those neither Seelie nor Unseelie, and is ruled by the Lord of Silver in Brokenstone. Other archfey include:
* The Lord of Silver
* Prince of Frost
* The Nighthearth
* The Mask of Seasons
* The Moonspeaker
=== Other Archfey ===
While not an official part of the Court of Silver, there js another archfey that is considered directly tied to the Court. This archfey is known as '''the Shattered Sovereign''', who rules in the depths of Cendriane, though she is rarely outside her home.
<br />
=== The Court of Coral ===
Even beneath the sea, there are archfey who operate on their own agendas. These archfey form the Court of Coral, ruled by the Coral Crown, who agreed to ally themselves with the Court of Silver to avoid assimilation under the Summer and Gloaming Courts. In this way, the Court of Silver cannot exert direct control over the Court of Coral.
* The Coral Crown
* Lord of the Deep
* Lady of the Lake
* The River King
* The Gatekeeper
== Other Archfey ==
Though the majority of Archfey are tied to the Courts, there are many who drift freely from their rigid heirarchies. These archfey are usually very powerful, if fickle, and often claim relation to gods and deities.
* The White Lady
* The Name
*
*
<br />
734c6fc701f8a0d147e4d7cd2497e827e2f4c0da
236
235
2022-05-13T15:57:48Z
Gingerdanger
2
wikitext
text/x-wiki
Many of the residents of the Feywild find themselves under the rule of one of the Courts: a hierarchy of fey and Archfey that hold power over the land itself and the people living within.
== The Summer Court ==
One of the three central courts, the Summer Court is the court of the Seelie Fey, and is ruled by Queen Titania and Lord Oberon in Senaliesse. Its influence extends over the cities of Mithrendain and Shinelestra, and has ties to the city of Astrazalian. Other archfeys of the Summer Court include:
* The Summer Queen, Queen Titania
* The Green Lord, Lord Oberon
* The Lord of Light
* The Ildanach
* Lord of the Hunt
=== Other Archfey ===
Some archfeys are not considered a part of the Court, though they may still hold close ties to either the Court as a whole, or to a particular archfey. These include:
* The Lady of Starlight, Shandria
=== The Green Court ===
The Green Court, also known as the Spring Court, while loyal to the Summer Court, is a Court in and of itself. It is lead by the Maiden Monarch, and its seat of power is located in the Maze of Fathagn, where it presides over dryads, treants, and other creatures tied to nature. Other archfeys include:
* Maiden Monarch
* The Lord of Bats
* The Unicorn Queen
* The Infinite Branches
== The Gloaming Court ==
The Gloaming Court is the Summer Court's equal and opposite as one of the three central courts of the Feywild. It is the court of the Unseelie Fey, and it is ruled solely by the Queen of Air and Darkness. Other archfey include:
* The Queen of Air and Darkness, Queen Mab
* Prince of Hearts
* The White Knight
* The Great Witch
* Oracle of Doom
* Mistress of Midnight Teeth
=== The Winter Court ===
The Winter Court is the most well-known under the Gloaming Court for many reasons, but not all of them are the right reasons. It was once ruled by the Prince of Frost, but during an exchange of power the Prince severed all ties with the Winter Court and Queen Mab. Now it is controlled by the Queen of Night and Magic, Queen Mab's daughter.
* The Queen of Night and Magic
* The Morrigan
* The Snow Queen
* The Banshee Queen
=== The Autumn Court ===
* The Pumpkin King
* Prince of Hearts
* The Ashen Lady
* The Blight Lord
== The Court of Silver ==
The Court of Silver is a relatively new addition to the Court of the Feywild, but rose to power in the last few centuries as a third major power to the Summer and Gloaming Courts. It presides over all Neutral Fey, those neither Seelie nor Unseelie, and is ruled by the Lord of Silver in Brokenstone. Other archfey include:
* The Lord of Silver
* Prince of Frost
* The Nighthearth
* The Mask of Seasons
* The Moonspeaker
=== Other Archfey ===
While not an official part of the Court of Silver, there js another archfey that is considered directly tied to the Court. This archfey is known as '''the Shattered Sovereign''', who rules in the depths of Cendriane, though she is rarely outside her home.
<br />
=== The Court of Coral ===
Even beneath the sea, there are archfey who operate on their own agendas. These archfey form the Court of Coral, ruled by the Coral Crown, who agreed to ally themselves with the Court of Silver to avoid assimilation under the Summer and Gloaming Courts. In this way, the Court of Silver cannot exert direct control over the Court of Coral.
* The Coral Crown
* Lord of the Deep
* Lady of the Lake
* The River King
* The Gatekeeper
== Other Archfey ==
Though the majority of Archfey are tied to the Courts, there are many who drift freely from their rigid heirarchies. These archfey are usually very powerful, if fickle, and often claim relation to gods and deities.
* The White Lady
* The Name
* Baba Yaga
* The King of Dragonflies
* The First Lord, Lord Thrumbolg
<br />
27dc95baf7230d1701d44d3efb6e46ef8ffee62c
237
236
2022-05-14T18:50:47Z
Gingerdanger
2
wikitext
text/x-wiki
Many of the residents of the Feywild find themselves under the rule of one of the Courts: a hierarchy of fey and Archfey that hold power over the land itself and the people living within.
== The Summer Court ==
One of the three central courts, the Summer Court is the court of the Seelie Fey, and is ruled by Queen Titania and Lord Oberon in Senaliesse. Its influence extends over the cities of Mithrendain and Shinelestra, and has ties to the city of Astrazalian. Other archfeys of the Summer Court include:
* The Summer Queen, Queen Titania
* The Green Lord, Lord Oberon
* The Lord of Light
* The Ildanach
* Lord of the Hunt
=== Other Archfey ===
Some archfeys are not considered a part of the Court, though they may still hold close ties to either the Court as a whole, or to a particular archfey. These include:
* The Lady of Starlight, Shandria
=== The Green Court ===
The Green Court, also known as the Spring Court, while loyal to the Summer Court, is a Court in and of itself. It is lead by the Maiden Monarch, and its seat of power is located in the Maze of Fathagn, where it presides over dryads, treants, and other creatures tied to nature. Other archfeys include:
* Maiden Monarch
* The Lord of Bats
* The Unicorn Queen
* The Infinite Branches
== The Gloaming Court ==
The Gloaming Court is the Summer Court's equal and opposite as one of the three central courts of the Feywild. It is the court of the Unseelie Fey, and it is ruled solely by the Queen of Air and Darkness. Other archfey include:
* The Queen of Air and Darkness, Queen Mab
* Prince of Hearts
* The White Knight
* The Great Witch
* Oracle of Doom
* Mistress of Midnight Teeth
=== The Winter Court ===
The Winter Court is the most well-known under the Gloaming Court for many reasons, but not all of them are the right reasons. It was once ruled by the Prince of Frost, but during an exchange of power the Prince severed all ties with the Winter Court and Queen Mab. Now it is controlled by the Queen of Night and Magic, Queen Mab's daughter.
* The Queen of Night and Magic
* The Morrigan
* The Snow Queen
* The Banshee Queen
=== The Autumn Court ===
* The Pumpkin King
* Prince of Hearts
* The Ashen Lady
* The Blight Lord
== The Court of Silver ==
The Court of Silver is a relatively new addition to the Court of the Feywild, but rose to power in the last few centuries as a third major power to the Summer and Gloaming Courts. It presides over all Neutral Fey, those neither Seelie nor Unseelie, and is ruled by the Lord of Silver in Brokenstone. Other archfey include:
* The Lord of Silver
* Prince of Frost
* The Nighthearth
* The Mask of Seasons
*
=== Other Archfey ===
While not an official part of the Court of Silver, there js another archfey that is considered directly tied to the Court. This archfey is known as '''the Shattered Sovereign''', who rules in the depths of Cendriane, though she is rarely outside her home.
<br />
=== The Court of Coral ===
Even beneath the sea, there are archfey who operate on their own agendas. These archfey form the Court of Coral, ruled by the Coral Crown, who agreed to ally themselves with the Court of Silver to avoid assimilation under the Summer and Gloaming Courts. In this way, the Court of Silver cannot exert direct control over the Court of Coral.
* The Coral Crown
* Lord of the Deep
* Lady of the Lake
* The River King
* The Gatekeeper
== Other Archfey ==
Though the majority of Archfey are tied to the Courts, there are many who drift freely from their rigid heirarchies. These archfey are usually very powerful, if fickle, and often claim relation to gods and deities.
* The White Lady
* The Name
* Baba Yaga
* The King of Dragonflies
* The First Lord, Lord Thrumbolg
<br />
b6f1a8f61754536a43ae6e9eaa8df2fb26f1b7de
Thunder, Ice, and Everything Nice Wiki
0
2
12
11
2022-05-13T15:42:53Z
Gingerdanger
2
wikitext
text/x-wiki
<mainpage-leftcolumn-start />
<div style="text-align: center; font-size: x-large; padding: 1em;">'''Welcome to the {{SITENAME}}!'''</div>
In a little town on the Sword Coast, a group of strangers took a quest to earn some cash.
How strange to think they would go on to kill a dragon, aid a would-be prince, and fall into the lands of the Fey. Strange happenings surround these adventurers, and threaten to snare them in a web of ice and magic.
==Important articles==
<gallery position="center" captionalign="center" navigation="true">
File:Celtic Boar.jpeg|link=The Banes of Thunder|[[The Banes of Thunder]]
File:Placeholder|link=A Crucial Item| [[The Crown of Neverwinter]]
File:Sword Coast.png|link=The Sword Coast| [[The Sword Coast]]
File:Placeholder|link=A Main Character| [[Neverwinter]]
File:Placeholder|link=An Important Location| [[The Feywild]]
File:Placeholder|link=A Key Event| [[Courts of the Fey]]
</gallery>
<!-- The gallery above works well for individual articles, but it would also be good to have another below it that points to important Category: pages. -->
<mainpage-endcolumn />
<mainpage-rightcolumn-start />
''Need help building out this community?''
*[[Project:Wiki rules|Rules of this wiki]]
*[[w:c:community:Help:Getting Started|Getting Started]]
*[[w:c:community:Help:Contributing|How to Contribute]]
*[[w:c:community:Help:Community Management|Managing your new community]]
*[[w:c:community:Help:Contents|Guides]]
*[[w:c:community:Help:Index|All Help articles]]
You can also be part of the larger Fandom family of communities. Visit [[w:c:community|Fandom's Community Central]]!
''Community Founders'': Write a good and paragraph-length description for your welcome section about your topic. Let your readers know what your topic is about and add some general information about it. Then you should visit [[Special:AdminDashboard|the admin dashboard for more tips]].
<mainpage-endcolumn />
[[Category:{{SITENAME}}]]
[[Category:Settings]]
f2142d2cc5c49109d9716c89bf30247c9085dd9b
Template:Tl
10
353
601
2022-09-30T01:09:19Z
m>Pppery
0
Redirected page to [[Template:Template link]]
wikitext
text/x-wiki
#REDIRECT [[Template:Template link]]
fb9a6b420e13178e581af6e7d64274cd30a79017
Template:Template link
10
352
599
2022-09-30T01:10:00Z
m>Pppery
0
46 revisions imported from [[:wikipedia:Template:Template_link]]
wikitext
text/x-wiki
{{[[Template:{{{1}}}|{{{1}}}]]}}<noinclude>{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
eabbec62efe3044a98ebb3ce9e7d4d43c222351d
Template:Documentation
10
5
587
15
2022-09-30T01:43:37Z
m>MacFan4000
0
4 revisions imported from [[:meta:Template:Documentation]]: this is useful and was on templateiwki
wikitext
text/x-wiki
{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude>[[Category:Templates]]</noinclude>
9885bb4fa99bf3d5b960e73606bbb8eed3026877
Module:Arguments
828
348
591
2022-09-30T02:32:01Z
m>Pppery
0
24 revisions imported from [[:wikipedia:Module:Arguments]]
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
3134ecce8429b810d445e29eae115e2ae4c36c53
Module:Documentation
828
349
593
2022-09-30T02:36:08Z
m>Pppery
0
Pppery moved page [[Module:Documentation/2]] to [[Module:Documentation]] without leaving a redirect
Scribunto
text/plain
-- This module implements {{documentation}}.
-- Get required modules.
local getArgs = require('Module:Arguments').getArgs
-- Get the config table.
local cfg = mw.loadData('Module:Documentation/config')
local p = {}
-- Often-used functions.
local ugsub = mw.ustring.gsub
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end
return ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
end
p.message = message
local function makeWikilink(page, display)
if display then
return mw.ustring.format('[[%s|%s]]', page, display)
else
return mw.ustring.format('[[%s]]', page)
end
end
p.makeWikilink = makeWikilink
local function makeCategoryLink(cat, sort)
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end
p.makeCategoryLink = makeCategoryLink
local function makeUrlLink(url, display)
return mw.ustring.format('[%s %s]', url, display)
end
p.makeUrlLink = makeUrlLink
local function makeToolbar(...)
local ret = {}
local lim = select('#', ...)
if lim < 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
-- 'documentation-toolbar'
return '<span class="' .. message('toolbar-class') .. '">('
.. table.concat(ret, ' | ') .. ')</span>'
end
p.makeToolbar = makeToolbar
----------------------------------------------------------------------------
-- Argument processing
----------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end
----------------------------------------------------------------------------
-- Entry points
----------------------------------------------------------------------------
function p.nonexistent(frame)
if mw.title.getCurrentTitle().subpageText == 'testcases' then
return frame:expandTemplate{title = 'module test cases notice'}
else
return p.main(frame)
end
end
p.main = makeInvokeFunc('_main')
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:tag('div')
-- 'documentation-container'
:addClass(message('container'))
:attr('role', 'complementary')
:attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil)
:attr('aria-label', args.heading == '' and 'Documentation' or nil)
:newline()
:tag('div')
-- 'documentation'
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
-- 'documentation-clear'
:addClass(message('clear'))
:done()
:newline()
:done()
:wikitext(p._endBox(args, env))
:done()
:wikitext(p.addTrackingCategories(env))
-- 'Module:Documentation/styles.css'
return mw.getCurrentFrame():extensionTag (
'templatestyles', '', {src=cfg['templatestyles']
}) .. tostring(root)
end
----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------
function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title
-- objects and other namespace- or path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
--
-- Data includes:
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}
-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})
function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end
function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
-- 'testcases-subpage' --> 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end
function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --> 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --> 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the
-- same as the subject namespace. However, pages in the Article, File,
-- MediaWiki or Category namespaces must have their /doc, /sandbox and
-- /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end
function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.fullUrl(
'Special:ComparePages',
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end
return env
end
----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------
p.startBox = makeInvokeFunc('_startBox')
function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content or args[1] then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end
function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --> 'view'
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'create-link-display' --> 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
if docTitle.isRedirect then
docTitle = docTitle.redirectTarget
end
local data = {}
data.title = title
data.docTitle = docTitle
-- View, display, edit, and purge links if /doc exists.
data.viewLinkDisplay = message('view-link-display')
data.editLinkDisplay = message('edit-link-display')
data.historyLinkDisplay = message('history-link-display')
data.purgeLinkDisplay = message('purge-link-display')
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
data.preload = preload
data.createLinkDisplay = message('create-link-display')
return data
end
function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create][purge] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local function escapeBrackets(s)
-- Escapes square brackets with HTML entities.
s = s:gsub('%[', '[') -- Replace square brackets with HTML entities.
s = s:gsub('%]', ']')
return s
end
local ret
local docTitle = data.docTitle
local title = data.title
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay)
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay)
ret = '[%s] [%s] [%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)
else
local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
ret = '[%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, createLink, purgeLink)
end
return ret
end
function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --> 'Template documentation'
-- 'module-namespace-heading' --> 'Module documentation'
-- 'file-namespace-heading' --> 'Summary'
-- 'other-namespaces-heading' --> 'Documentation'
-- 'testcases-create-link-display' --> 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an "other namespaces" namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
else
-- 'documentation-heading'
data.headingClass = message('main-div-heading-class')
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
-- 'mw-editsection-like plainlinks'
data.linksClass = message('start-box-link-classes')
data.links = links
end
return data
end
function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
-- 'documentation-startbox'
:addClass(message('start-box-class'))
:newline()
:tag('span')
:addClass(data.headingClass)
:attr('id', 'documentation-heading')
:cssText(data.headingStyleText)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end
----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------
p.content = makeInvokeFunc('_content')
function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that "=== Headings ===" at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end
p.contentTitle = makeInvokeFunc('_contentTitle')
function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end
----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------
p.endBox = makeInvokeFunc('_endBox')
function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end
-- Assemble the link box.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]."
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />'
if not args.content and not args[1] then
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
end
end
local box = mw.html.create('div')
-- 'documentation-metadata'
box:attr('role', 'note')
:addClass(message('end-box-class'))
-- 'plainlinks'
:addClass(message('end-box-plainlinks'))
:wikitext(text)
:done()
return '\n' .. tostring(box)
end
function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)".
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Help:Transclusion|transcluded]] from $1.'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --> 'create'
-- 'create-module-doc-blurb' -->
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editUrl = docTitle:fullUrl{action = 'edit'}
local editDisplay = message('edit-link-display')
local editLink = makeUrlLink(editUrl, editDisplay)
local historyUrl = docTitle:fullUrl{action = 'history'}
local historyDisplay = message('history-link-display')
local historyLink = makeUrlLink(historyUrl, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '<br />'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '<br />'
end
return ret
end
function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --> 'sandbox'
-- 'sandbox-edit-link-display' --> 'edit'
-- 'compare-link-display' --> 'diff'
-- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --> 'create'
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
-- 'mirror-link-display' --> 'mirror'
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
-- 'sandbox-link-display' --> 'sandbox'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display'--> 'edit'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --> 'create'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display' --> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'}
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end
function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text "Please add categories to the /doc subpage."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --> '/doc'
-- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end
function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the "Subpages of this template" link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --> 'template'
-- 'module-pagetype' --> 'module'
-- 'default-pagetype' --> 'page'
-- 'subpages-link-display' --> 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end
----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------
function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --> true
-- 'doc-subpage' --> 'doc'
-- 'testcases-subpage' --> 'testcases'
-- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end
return p
78cc3a78f2b5dbb267fa16027c0800a22dbd3c42
Module:Userbox
828
363
623
2022-09-30T13:34:01Z
m>Pppery
0
Let's not use [[Module:Category handler]] and its dependency web here please
Scribunto
text/plain
-- This module implements {{userbox}}.
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function checkNum(val, default)
-- Checks whether a value is a number greater than or equal to zero. If so,
-- returns it as a number. If not, returns a default value.
val = tonumber(val)
if val and val >= 0 then
return val
else
return default
end
end
local function addSuffix(num, suffix)
-- Turns a number into a string and adds a suffix.
if num then
return tostring(num) .. suffix
else
return nil
end
end
local function checkNumAndAddSuffix(num, default, suffix)
-- Checks a value with checkNum and adds a suffix.
num = checkNum(num, default)
return addSuffix(num, suffix)
end
local function makeCat(cat, sort)
-- Makes a category link.
if sort then
return mw.ustring.format('[[Category:%s|%s]]', cat, sort)
else
return mw.ustring.format('[[Category:%s]]', cat)
end
end
--------------------------------------------------------------------------------
-- Argument processing
--------------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local origArgs = require('Module:Arguments').getArgs(frame)
local args = {}
for k, v in pairs(origArgs) do
args[k] = v
end
return p.main(funcName, args)
end
end
p.userbox = makeInvokeFunc('_userbox')
p['userbox-2'] = makeInvokeFunc('_userbox-2')
p['userbox-r'] = makeInvokeFunc('_userbox-r')
--------------------------------------------------------------------------------
-- Main functions
--------------------------------------------------------------------------------
function p.main(funcName, args)
local userboxData = p[funcName](args)
local userbox = p.render(userboxData)
local cats = p.categories(args)
return userbox .. (cats or '')
end
function p._userbox(args)
-- Does argument processing for {{userbox}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-color'] or args[1] or args['border-c'] or args['id-c'] or '#999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-background'] or args[2] or args['info-c'] or '#eee'
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-size'] or args['info-s'], 8, 'pt')
data.infoHeight = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.infoPadding = args['info-padding'] or args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-line-height'] or args['info-lh'] or '1.25em'
data.infoColor = args['info-color'] or args['info-fc'] or 'black'
data.infoOtherParams = args['info-other-param'] or args['info-op']
data.infoClass = args['info-class']
-- Get id values.
local id = args.logo or args[3] or args.id
data.id = id
data.showId = id and true or false
data.idWidth = checkNumAndAddSuffix(args['logo-width'] or args['id-w'], 45, 'px')
data.idHeight = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.idBackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd'
data.idTextAlign = args['id-a'] or 'center'
data.idFontSize = checkNumAndAddSuffix(args['logo-size'] or args[5] or args['id-s'], 14, 'pt')
data.idColor = args['logo-color'] or args['id-fc'] or data.infoColor
data.idPadding = args['logo-padding'] or args['id-p'] or '0 1px 0 0'
data.idLineHeight = args['logo-line-height'] or args['id-lh'] or '1.25em'
data.idOtherParams = args['logo-other-param'] or args['id-op']
data.idClass = args['id-class']
return data
end
p['_userbox-2'] = function (args)
-- Does argument processing for {{userbox-2}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args[9] or args['border-s'], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args[1] or args['border-c'] or args['id1-c'] or '#999999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args[2] or args['info-c'] or '#eeeeee'
-- Get info values.
data.info = args[4] or args.info or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-s'], 8, 'pt')
data.infoColor = args[8] or args['info-fc'] or 'black'
data.infoPadding = args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-lh'] or '1.25em'
data.infoOtherParams = args['info-op']
-- Get id values.
data.showId = true
data.id = args.logo or args[3] or args.id1 or 'id1'
data.idWidth = checkNumAndAddSuffix(args['id1-w'], 45, 'px')
data.idHeight = checkNumAndAddSuffix(args['id-h'], 45, 'px')
data.idBackgroundColor = args[1] or args['id1-c'] or '#dddddd'
data.idTextAlign = 'center'
data.idFontSize = checkNumAndAddSuffix(args['id1-s'], 14, 'pt')
data.idLineHeight = args['id1-lh'] or '1.25em'
data.idColor = args['id1-fc'] or data.infoColor
data.idPadding = args['id1-p'] or '0 1px 0 0'
data.idOtherParams = args['id1-op']
-- Get id2 values.
data.showId2 = true
data.id2 = args.logo or args[5] or args.id2 or 'id2'
data.id2Width = checkNumAndAddSuffix(args['id2-w'], 45, 'px')
data.id2Height = data.idHeight
data.id2BackgroundColor = args[7] or args['id2-c'] or args[1] or '#dddddd'
data.id2TextAlign = 'center'
data.id2FontSize = checkNumAndAddSuffix(args['id2-s'], 14, 'pt')
data.id2LineHeight = args['id2-lh'] or '1.25em'
data.id2Color = args['id2-fc'] or data.infoColor
data.id2Padding = args['id2-p'] or '0 0 0 1px'
data.id2OtherParams = args['id2-op']
return data
end
p['_userbox-r'] = function (args)
-- Does argument processing for {{userbox-r}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-color'] or args[1] or args['border-c'] or args['id-c'] or '#999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-background'] or args[2] or args['info-c'] or '#eee'
-- Get id values.
data.showId = false -- We only show id2 in userbox-r.
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-align'] or args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-size'] or args['info-s'], 8, 'pt')
data.infoPadding = args['info-padding'] or args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-line-height'] or args['info-lh'] or '1.25em'
data.infoColor = args['info-color'] or args['info-fc'] or 'black'
data.infoOtherParams = args['info-other-param'] or args['info-op']
-- Get id2 values.
data.showId2 = true
data.id2 = args.logo or args[3] or args.id or 'id'
data.id2Width = checkNumAndAddSuffix(args['logo-width'] or args['id-w'], 45, 'px')
data.id2Height = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.id2BackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd'
data.id2TextAlign = args['id-a'] or 'center'
data.id2FontSize = checkNumAndAddSuffix(args['logo-size'] or args[5] or args['id-s'], 14, 'pt')
data.id2Color = args['logo-color'] or args['id-fc'] or data.infoColor
data.id2Padding = args['logo-padding'] or args['id-p'] or '0 0 0 1px'
data.id2LineHeight = args['logo-line-height'] or args['id-lh'] or '1.25em'
data.id2OtherParams = args['logo-other-param'] or args['id-op']
return data
end
function p.render(data)
-- Renders the userbox html using the content of the data table.
-- Render the div tag html.
local root = mw.html.create('div')
root
:css('float', data.float)
:css('border', (data.borderWidth or '') .. ' solid ' .. (data.borderColor or ''))
:css('margin', '1px')
:css('width', data.width)
:addClass('wikipediauserbox')
:addClass(data.bodyClass)
-- Render the table tag html.
local tableroot = root:tag('table')
tableroot
:css('border-collapse', 'collapse')
:css('width', data.width)
:css('margin-bottom', '0')
:css('margin-top', '0')
:css('background', data.backgroundColor)
-- Render the id html.
local tablerow = tableroot:tag('tr')
if data.showId then
tablerow:tag('th')
:css('border', '0')
:css('width', data.idWidth)
:css('height', data.idHeight)
:css('background', data.idBackgroundColor)
:css('text-align', data.idTextAlign)
:css('font-size', data.idFontSize)
:css('color', data.idColor)
:css('padding', data.idPadding)
:css('line-height', data.idLineHeight)
:css('vertical-align', 'middle')
:cssText(data.idOtherParams)
:addClass(data.idClass)
:wikitext(data.id)
end
-- Render the info html.
tablerow:tag('td')
:css('border', '0')
:css('text-align', data.infoTextAlign)
:css('font-size', data.infoFontSize)
:css('padding', data.infoPadding)
:css('height', data.infoHeight)
:css('line-height', data.infoLineHeight)
:css('color', data.infoColor)
:css('vertical-align', 'middle')
:cssText(data.infoOtherParams)
:addClass(data.infoClass)
:wikitext(data.info)
-- Render the second id html.
if data.showId2 then
tablerow:tag('th')
:css('border', '0')
:css('width', data.id2Width)
:css('height', data.id2Height)
:css('background', data.id2BackgroundColor)
:css('text-align', data.id2TextAlign)
:css('font-size', data.id2FontSize)
:css('color', data.id2Color)
:css('padding', data.id2Padding)
:css('line-height', data.id2LineHeight)
:css('vertical-align', 'middle')
:cssText(data.id2OtherParams)
:wikitext(data.id2)
end
local title = mw.title.getCurrentTitle()
if (title.namespace == 2) and not title.text:match("/") then
return tostring(root) -- regular user page
elseif title.namespace == 14 then
return tostring(root) -- category
elseif title.isTalkPage then
return tostring(root) -- talk page
end
local function has_text(wikitext)
local function get_alt(text)
return text:match("|alt=([^|]*)") or ""
end
wikitext = wikitext:gsub("]]", "|]]")
wikitext = wikitext:gsub("%[%[%s*[Mm][Ee][Dd][Ii][Aa]%s*:[^|]-(|.-)]]", get_alt)
wikitext = wikitext:gsub("%[%[%s*[Ii][Mm][Aa][Gg][Ee]%s*:[^|]-(|.-)]]", get_alt)
wikitext = wikitext:gsub("%[%[%s*[Ff][Ii][Ll][Ee]%s*:[^|]-(|.-)]]", get_alt)
return mw.text.trim(wikitext) ~= ""
end
return tostring(root)
end
function p.categories(args, page)
-- Gets categories
-- The page parameter makes the function act as though the module was being called from that page.
-- It is included for testing purposes.
local cats = {}
cats[#cats + 1] = args.usercategory
cats[#cats + 1] = args.usercategory2
cats[#cats + 1] = args.usercategory3
if #cats > 0 and not require("Module:Yesno")(args.nocat) then
-- Get the title object
local title
if page then
title = mw.title.new(page)
else
title = mw.title.getCurrentTitle()
end
-- Build category handler arguments.
local chargs = {}
chargs.page = page
chargs.main = '[[Category:Pages with misplaced templates]]'
if title.namespace == 2 then
-- User namespace.
local user = ''
for i, cat in ipairs(cats) do
user = user .. makeCat(cat)
end
return user
elseif title.namespace == 10 then
-- Template namespace.
local basepage = title.baseText
local template = ''
for i, cat in ipairs(cats) do
template = template .. makeCat(cat, ' ' .. basepage)
end
return template
end
end
end
return p
aac333efff739f0243d8ffced6f4296cffb8d7e9
Template:Infobox
10
178
575
2022-09-30T14:45:57Z
m>Pppery
0
Copy from Wikipedia
wikitext
text/x-wiki
{{#invoke:Infobox|infobox}}<noinclude>
{{documentation}}
</noinclude>
627ee6fcf4d4f108fe054b5c476201cad0ed7717
Module:Infobox
828
354
605
2022-09-30T14:52:23Z
m>Pppery
0
Scribunto
text/plain
--
-- This module implements {{Infobox}}
--
local p = {}
local args = {}
local origArgs = {}
local root
local function notempty( s ) return s and s:match( '%S' ) end
local function fixChildBoxes(sval, tt)
if notempty(sval) then
local marker = '<span class=special_infobox_marker>'
local s = sval
s = mw.ustring.gsub(s, '(<%s*[Tt][Rr])', marker .. '%1')
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>)', '%1' .. marker)
if s:match(marker) then
s = mw.ustring.gsub(s, marker .. '%s*' .. marker, '')
s = mw.ustring.gsub(s, '([\r\n]|-[^\r\n]*[\r\n])%s*' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '%s*([\r\n]|-)', '%1')
s = mw.ustring.gsub(s, '(</[Cc][Aa][Pp][Tt][Ii][Oo][Nn]%s*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '(<%s*[Tt][Aa][Bb][Ll][Ee][^<>]*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '^(%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '([\r\n]%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '(%s*</[Tt][Aa][Bb][Ll][Ee]%s*>)', '%1')
s = mw.ustring.gsub(s, marker .. '(%s*\n|%})', '%1')
end
if s:match(marker) then
local subcells = mw.text.split(s, marker)
s = ''
for k = 1, #subcells do
if k == 1 then
s = s .. subcells[k] .. '</' .. tt .. '></tr>'
elseif k == #subcells then
local rowstyle = ' style="display:none"'
if notempty(subcells[k]) then rowstyle = '' end
s = s .. '<tr' .. rowstyle ..'><' .. tt .. ' colspan=2>\n' .. subcells[k]
elseif notempty(subcells[k]) then
if (k % 2) == 0 then
s = s .. subcells[k]
else
s = s .. '<tr><' .. tt .. ' colspan=2>\n' .. subcells[k] .. '</' .. tt .. '></tr>'
end
end
end
end
-- the next two lines add a newline at the end of lists for the PHP parser
-- https://en.wikipedia.org/w/index.php?title=Template_talk:Infobox_musical_artist&oldid=849054481
-- remove when [[:phab:T191516]] is fixed or OBE
s = mw.ustring.gsub(s, '([\r\n][%*#;:][^\r\n]*)$', '%1\n')
s = mw.ustring.gsub(s, '^([%*#;:][^\r\n]*)$', '%1\n')
s = mw.ustring.gsub(s, '^([%*#;:])', '\n%1')
s = mw.ustring.gsub(s, '^(%{%|)', '\n%1')
return s
else
return sval
end
end
local function union(t1, t2)
-- Returns the union of the values of two tables, as a sequence.
local vals = {}
for k, v in pairs(t1) do
vals[v] = true
end
for k, v in pairs(t2) do
vals[v] = true
end
local ret = {}
for k, v in pairs(vals) do
table.insert(ret, k)
end
return ret
end
local function getArgNums(prefix)
-- Returns a table containing the numbers of the arguments that exist
-- for the specified prefix. For example, if the prefix was 'data', and
-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}.
local nums = {}
for k, v in pairs(args) do
local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
if num then table.insert(nums, tonumber(num)) end
end
table.sort(nums)
return nums
end
local function addRow(rowArgs)
-- Adds a row to the infobox, with either a header cell
-- or a label/data cell combination.
if rowArgs.header and rowArgs.header ~= '_BLANK_' then
root
:tag('tr')
:addClass(rowArgs.rowclass)
:cssText(rowArgs.rowstyle)
:attr('id', rowArgs.rowid)
:tag('th')
:attr('colspan', 2)
:attr('id', rowArgs.headerid)
:addClass(rowArgs.class)
:addClass(args.headerclass)
:css('text-align', 'center')
:cssText(args.headerstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(fixChildBoxes(rowArgs.header, 'th'))
elseif rowArgs.data then
if not rowArgs.data:gsub('%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*]]', ''):match('^%S') then
rowArgs.rowstyle = 'display:none'
end
local row = root:tag('tr')
row:addClass(rowArgs.rowclass)
row:cssText(rowArgs.rowstyle)
row:attr('id', rowArgs.rowid)
if rowArgs.label then
row
:tag('th')
:attr('scope', 'row')
:attr('id', rowArgs.labelid)
:cssText(args.labelstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(rowArgs.label)
:done()
end
local dataCell = row:tag('td')
if not rowArgs.label then
dataCell
:attr('colspan', 2)
:css('text-align', 'center')
end
dataCell
:attr('id', rowArgs.dataid)
:addClass(rowArgs.class)
:cssText(rowArgs.datastyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(fixChildBoxes(rowArgs.data, 'td'))
end
end
local function renderTitle()
if not args.title then return end
root
:tag('caption')
:addClass(args.titleclass)
:cssText(args.titlestyle)
:wikitext(args.title)
end
local function renderAboveRow()
if not args.above then return end
root
:tag('tr')
:tag('th')
:attr('colspan', 2)
:addClass(args.aboveclass)
:css('text-align', 'center')
:css('font-size', '125%')
:css('font-weight', 'bold')
:cssText(args.abovestyle)
:wikitext(fixChildBoxes(args.above,'th'))
end
local function renderBelowRow()
if not args.below then return end
root
:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass(args.belowclass)
:css('text-align', 'center')
:cssText(args.belowstyle)
:wikitext(fixChildBoxes(args.below,'td'))
end
local function renderSubheaders()
if args.subheader then
args.subheader1 = args.subheader
end
if args.subheaderrowclass then
args.subheaderrowclass1 = args.subheaderrowclass
end
local subheadernums = getArgNums('subheader')
for k, num in ipairs(subheadernums) do
addRow({
data = args['subheader' .. tostring(num)],
datastyle = args.subheaderstyle,
rowcellstyle = args['subheaderstyle' .. tostring(num)],
class = args.subheaderclass,
rowclass = args['subheaderrowclass' .. tostring(num)]
})
end
end
local function renderImages()
if args.image then
args.image1 = args.image
end
if args.caption then
args.caption1 = args.caption
end
local imagenums = getArgNums('image')
for k, num in ipairs(imagenums) do
local caption = args['caption' .. tostring(num)]
local data = mw.html.create():wikitext(args['image' .. tostring(num)])
if caption then
data
:tag('div')
:cssText(args.captionstyle)
:wikitext(caption)
end
addRow({
data = tostring(data),
datastyle = args.imagestyle,
class = args.imageclass,
rowclass = args['imagerowclass' .. tostring(num)]
})
end
end
local function preprocessRows()
-- Gets the union of the header and data argument numbers,
-- and renders them all in order using addRow.
local rownums = union(getArgNums('header'), getArgNums('data'))
table.sort(rownums)
local lastheader
for k, num in ipairs(rownums) do
if args['header' .. tostring(num)] then
if lastheader then
args['header' .. tostring(lastheader)] = nil
end
lastheader = num
elseif args['data' .. tostring(num)] and args['data' .. tostring(num)]:gsub('%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*]]', ''):match('^%S') then
local data = args['data' .. tostring(num)]
if data:gsub('%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*]]', ''):match('%S') then
lastheader = nil
end
end
end
if lastheader then
args['header' .. tostring(lastheader)] = nil
end
end
local function renderRows()
-- Gets the union of the header and data argument numbers,
-- and renders them all in order using addRow.
local rownums = union(getArgNums('header'), getArgNums('data'))
table.sort(rownums)
for k, num in ipairs(rownums) do
addRow({
header = args['header' .. tostring(num)],
label = args['label' .. tostring(num)],
data = args['data' .. tostring(num)],
datastyle = args.datastyle,
class = args['class' .. tostring(num)],
rowclass = args['rowclass' .. tostring(num)],
rowstyle = args['rowstyle' .. tostring(num)],
rowcellstyle = args['rowcellstyle' .. tostring(num)],
dataid = args['dataid' .. tostring(num)],
labelid = args['labelid' .. tostring(num)],
headerid = args['headerid' .. tostring(num)],
rowid = args['rowid' .. tostring(num)]
})
end
end
local function renderItalicTitle()
local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title'])
if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then
root:wikitext(mw.getCurrentFrame():expandTemplate({title = 'italic title'}))
end
end
local function _infobox()
-- Specify the overall layout of the infobox, with special settings
-- if the infobox is used as a 'child' inside another infobox.
if args.child ~= 'yes' then
root = mw.html.create('table')
root
:addClass((args.subbox ~= 'yes') and 'infobox' or nil)
:addClass(args.bodyclass)
if args.subbox == 'yes' then
root
:css('padding', '0')
:css('border', 'none')
:css('margin', '-3px')
:css('width', 'auto')
:css('min-width', '100%')
:css('font-size', '100%')
:css('clear', 'none')
:css('float', 'none')
:css('background-color', 'transparent')
else
root
:css('width', '22em')
end
root
:cssText(args.bodystyle)
renderTitle()
renderAboveRow()
else
root = mw.html.create()
root
:wikitext(args.title)
end
renderSubheaders()
renderImages()
if args.autoheaders then
preprocessRows()
end
renderRows()
renderBelowRow()
renderItalicTitle()
return tostring(root)
end
local function preprocessSingleArg(argName)
-- If the argument exists and isn't blank, add it to the argument table.
-- Blank arguments are treated as nil to match the behaviour of ParserFunctions.
if origArgs[argName] and origArgs[argName] ~= '' then
args[argName] = origArgs[argName]
end
end
local function preprocessArgs(prefixTable, step)
-- Assign the parameters with the given prefixes to the args table, in order, in batches
-- of the step size specified. This is to prevent references etc. from appearing in the
-- wrong order. The prefixTable should be an array containing tables, each of which has
-- two possible fields, a "prefix" string and a "depend" table. The function always parses
-- parameters containing the "prefix" string, but only parses parameters in the "depend"
-- table if the prefix parameter is present and non-blank.
if type(prefixTable) ~= 'table' then
error("Non-table value detected for the prefix table", 2)
end
if type(step) ~= 'number' then
error("Invalid step value detected", 2)
end
-- Get arguments without a number suffix, and check for bad input.
for i,v in ipairs(prefixTable) do
if type(v) ~= 'table' or type(v.prefix) ~= "string" or (v.depend and type(v.depend) ~= 'table') then
error('Invalid input detected to preprocessArgs prefix table', 2)
end
preprocessSingleArg(v.prefix)
-- Only parse the depend parameter if the prefix parameter is present and not blank.
if args[v.prefix] and v.depend then
for j, dependValue in ipairs(v.depend) do
if type(dependValue) ~= 'string' then
error('Invalid "depend" parameter value detected in preprocessArgs')
end
preprocessSingleArg(dependValue)
end
end
end
-- Get arguments with number suffixes.
local a = 1 -- Counter variable.
local moreArgumentsExist = true
while moreArgumentsExist == true do
moreArgumentsExist = false
for i = a, a + step - 1 do
for j,v in ipairs(prefixTable) do
local prefixArgName = v.prefix .. tostring(i)
if origArgs[prefixArgName] then
moreArgumentsExist = true -- Do another loop if any arguments are found, even blank ones.
preprocessSingleArg(prefixArgName)
end
-- Process the depend table if the prefix argument is present and not blank, or
-- we are processing "prefix1" and "prefix" is present and not blank, and
-- if the depend table is present.
if v.depend and (args[prefixArgName] or (i == 1 and args[v.prefix])) then
for j,dependValue in ipairs(v.depend) do
local dependArgName = dependValue .. tostring(i)
preprocessSingleArg(dependArgName)
end
end
end
end
a = a + step
end
end
local function parseDataParameters()
-- Parse the data parameters in the same order that the old {{infobox}} did, so that
-- references etc. will display in the expected places. Parameters that depend on
-- another parameter are only processed if that parameter is present, to avoid
-- phantom references appearing in article reference lists.
preprocessSingleArg('autoheaders')
preprocessSingleArg('child')
preprocessSingleArg('bodyclass')
preprocessSingleArg('subbox')
preprocessSingleArg('bodystyle')
preprocessSingleArg('title')
preprocessSingleArg('titleclass')
preprocessSingleArg('titlestyle')
preprocessSingleArg('above')
preprocessSingleArg('aboveclass')
preprocessSingleArg('abovestyle')
preprocessArgs({
{prefix = 'subheader', depend = {'subheaderstyle', 'subheaderrowclass'}}
}, 10)
preprocessSingleArg('subheaderstyle')
preprocessSingleArg('subheaderclass')
preprocessArgs({
{prefix = 'image', depend = {'caption', 'imagerowclass'}}
}, 10)
preprocessSingleArg('captionstyle')
preprocessSingleArg('imagestyle')
preprocessSingleArg('imageclass')
preprocessArgs({
{prefix = 'header'},
{prefix = 'data', depend = {'label'}},
{prefix = 'rowclass'},
{prefix = 'rowstyle'},
{prefix = 'rowcellstyle'},
{prefix = 'class'},
{prefix = 'dataid'},
{prefix = 'labelid'},
{prefix = 'headerid'},
{prefix = 'rowid'}
}, 50)
preprocessSingleArg('headerclass')
preprocessSingleArg('headerstyle')
preprocessSingleArg('labelstyle')
preprocessSingleArg('datastyle')
preprocessSingleArg('below')
preprocessSingleArg('belowclass')
preprocessSingleArg('belowstyle')
preprocessSingleArg('name')
args['italic title'] = origArgs['italic title'] -- different behaviour if blank or absent
preprocessSingleArg('decat')
end
function p.infobox(frame)
-- If called via #invoke, use the args passed into the invoking template.
-- Otherwise, for testing purposes, assume args are being passed directly in.
if frame == mw.getCurrentFrame() then
origArgs = frame:getParent().args
else
origArgs = frame
end
parseDataParameters()
return _infobox()
end
function p.infoboxTemplate(frame)
-- For calling via #invoke within a template
origArgs = {}
for k,v in pairs(frame.args) do origArgs[k] = mw.text.trim(v) end
parseDataParameters()
return _infobox()
end
return p
c6ac51f9e2faf9c2f3aba1fb8c05af98db47f4d4
Template:En-WP attribution notice
10
360
617
2022-09-30T15:18:52Z
m>Pppery
0
wikitext
text/x-wiki
<includeonly>{| style="border: 1px solid #e0e0e0; background-color: #f8f8f8; color:black; margin: 5px auto; width: 60%;"
|-
| style="padding: 3px 10px;" | [[File:Wikipedia-logo-v2.svg|30px|Wikipedia logo]]
| style="font-size: 90%; padding: 3px;" | This page uses material from the Wikipedia page [[w:en:{{{1|{{FULLPAGENAME}}}}}|{{{1|{{FULLPAGENAME}}}}}]], which is released under the [[w:en:Wikipedia:Text of Creative Commons Attribution-ShareAlike 3.0 Unported License|Creative Commons Attribution-ShareAlike 3.0 Unported License]] ([https://en.wikipedia.org/w/index.php?title={{urlencode:{{{1|{{FULLPAGENAME}}}}}}}&action=history view authors]).
|}
[[Category:Pages from English Wikipedia]]</includeonly>
<noinclude>
{{documentation}}
{{En-WP attribution notice|Template:En-WP attribution notice}}
</noinclude>
22d054cdfdc01cc48994b02dc0ccde4265694650
Template:Infobox/doc
10
343
577
2022-09-30T19:09:06Z
m>Pppery
0
wikitext
text/x-wiki
{{Documentation subpage}}
This template is intended as a meta template: a template used for constructing other templates. '''Note''': In general, it is not meant for use directly in an article, but can be used on a one-off basis if required. [[w:Help:Infobox]] contains an introduction about the recommended content and design of infoboxes.
== Usage ==
Usage is similar to {{tl|navbox}}, but with an additional distinction. Each row on the table can contain either a header, or a label/data pair, or just a data cell. These are mutually exclusive states so if you define a row with both a header and a label/data pair, the label/data pair is ignored.
To insert an image somewhere other than at the top of the infobox, or to insert freeform data, use a row with only a data field.
== Optional control parameters ==
; name : If this parameter is present, "view/talk/edit" links will be added to the bottom of the infobox, pointing to the named page. You may use the value <nowiki>{{subst:PAGENAME}}</nowiki>; however this is rarely what you want, because it will send users clicking these links in an infobox in an article to the template code rather than the data in the infobox that they probably want to change.
; child : See the [[#Embedding|Embedding]] section for details. If this is set to "yes", this child infobox should be titled but have no name parameter. This parameter is empty by default, set it to "yes" to activate it.
; subbox : See the [[#Subboxes|Subboxes]] section for details. If this is set to "yes", this subbox should be titled but have no name parameter. This parameter is empty by default, set to "yes" to activate it. It has no effect if the '''child''' parameter is also set to "yes".
; decat : If this is set to "yes", the current page will not be autocategorized in a maintenance category when the generated infobox has some problems or no visible data section. Leave empty by default or set to "yes" to activate it.
== Content parameters ==
=== Title ===
There are two different ways to put a title on an infobox. One contains the title inside the infobox's border in the uppermost cell of the table, the other puts as a caption it on top of the table. You can use both of them together if you like, or just one or the other, or even neither (though this is not recommended):
; title : Text to put in the caption over the top of the table (or as section header before the whole content of this table, if this is a child infobox). For accessibility reasons, this is the most recommended alternative.
; above : Text to put within the uppermost cell of the table.
; subheader(n) : additional title fields which fit below {{{title}}} and {{{above}}}, but before images.
Examples:
{{Infobox
| name = Infobox/doc
| title = Text in caption over infobox
| subheader = Subheader of the infobox
| header = (the rest of the infobox goes here)
}}
<pre style="overflow:auto">
{{Infobox
| name = {{subst:PAGENAME}}
| title = Text in caption over infobox
| subheader = Subheader of the infobox
| header = (the rest of the infobox goes here)
}}
</pre>{{clear}}
{{Infobox
| name = Infobox/doc
| above = Text in uppermost cell of infobox
| subheader = Subheader of the infobox
| subheader2 = Second subheader of the infobox
| header = (the rest of the infobox goes here)
}}
<pre style="overflow:auto">
{{Infobox
| name = {{subst:PAGENAME}}
| above = Text in uppermost cell of infobox
| subheader = Subheader of the infobox
| subheader2 = Second subheader of the infobox
| header = (the rest of the infobox goes here)
}}
</pre>{{clear}}
=== Illustration images ===
; image(n) : images to display at the top of the template. Use full image syntax, for example <nowiki>[[File:example.png|200px|alt=Example alt text]]</nowiki>. Image is centered by default.
; caption(n) : Text to put underneath the images.
=== Main data ===
; header(n) : Text to use as a header in row n.
; label(n) : Text to use as a label in row n.
; data(n) : Text to display as data in row n.
Note: for any given value for (n), not all combinations of parameters are permitted. The presence of a header''(n)'' parameter will cause the corresponding data''(n)'' (and rowclass''(n)'' label''(n)'', see below) parameters to be ignored; the absence of a data''(n)'' parameters will cause the corresponding label''(n)'' parameters to be ignored. Valid combinations for any single row are:
* |class''(n)''= |header''(n)''=
* |rowclass''(n)'= |class''(n)''= |data''(n)''=
* |rowclass''(n)''= |label''(n)''= |class''(n)''= data''(n)''=
See the rendering of header4, label4, and data4 in the [[#Examples|Examples]] section below.
==== Number ranges ====
To allow flexibility when the layout of an infobox is changed, it may be helpful when developing an infobox to use non-contiguous numbers for header and label/data rows. Parameters for new rows can then be inserted in future without having to renumber existing parameters. For example:
<pre style="overflow:auto">
| header3 = Section 1
| label5 = Label A
| data5 = Data A
| label7 = Label C
| data7 = Data C
| header10 = Section 2
| label12 = Label D
| data12 = Data D
</pre>{{clear}}
==== Making data fields optional ====
A row with a label but no data is not displayed. This allows for the easy creation of optional infobox content rows. To make a row optional use a parameter that defaults to an empty string, like so:
<pre style="overflow:auto">
| label5 = Population
| data5 = {{{population|}}}
</pre>{{clear}}
This way if an article doesn't define the population parameter in its infobox the row won't be displayed.
For more complex fields with pre-formatted contents that would still be present even if the parameter wasn't set, you can wrap it all in an "#if" statement to make the whole thing vanish when the parameter is not used. For instance, the "#if" statement in the following example reads "#if:the parameter ''mass'' has been supplied |then display it, followed by 'kg'":
<pre style="overflow:auto">
| label6 = Mass
| data6 = {{ #if: {{{mass|}}} | {{{mass}}} kg }}
</pre>{{clear}}
For more on #if, see [[mw:Help:Extension:ParserFunctions##if|here]].
==== Hiding headers when all data fields are hidden ====
You can also make headers optional in a similar way. Consider this example:
{{Infobox
| title = Example of an undesirable header
| header1 = Undesirable header
| label2 = Item 1 | data2 =
| label3 = Item 2 | data3 =
| label4 = Item 3 | data4 =
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
<pre style="overflow:auto">
{{Infobox
| title = Example of an undesirable header
| header1 = Undesirable header
| label2 = Item 1 | data2 =
| label3 = Item 2 | data3 =
| label4 = Item 3 | data4 =
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
</pre>{{clear}}
If you want the first header to appear only if one or more of the data fields that fall under it are filled, one could use the following pattern as an example of how to do it:
{{Infobox
| title = Example of an optional header
| header1 = {{ #if: {{{item1|}}}{{{item2|}}}{{{item3|}}} | Optional header }}
| label2 = Item 1 | data2 = {{{item1|}}}
| label3 = Item 2 | data3 = {{{item2|}}}
| label4 = Item 3 | data4 = {{{item3|}}}
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
<pre style="overflow:auto">
{{Infobox
| title = Example of an optional header
| header1 = {{ #if: {{{item1|}}}{{{item2|}}}{{{item3|}}} | Optional header }}
| label2 = Item 1 | data2 = {{{item1|}}}
| label3 = Item 2 | data3 = {{{item2|}}}
| label4 = Item 3 | data4 = {{{item3|}}}
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
</pre>{{clear}}
header1 will be shown if any of item1, item2, or item3 is defined. If none of the three parameters are defined the header won't be shown and no empty row appears before the next static content. The trick to this is that the "#if" returns false only if there is nothing whatsoever in the conditional section, so only if all three of item1, item2 and item3 are undefined will the if statement fail.
Note that such trick may be sometimes very complex to test if there are many data items whose value depends on complex tests (or when a data row is generated by a recursive invocation of this template as a [[#Subboxes|subbox]]). Ideally, the Lua module supporting this template should now support a new way to make each header row autohideable by detecting if there is at least one non-empty data row after that header row (a parameter like "autohide header1 = yes", for example, would remove the need to perform the "#if" test so that we can just to define "header1 = Optional header"),
=== Footer ===
; below : Text to put in the bottom cell. The bottom cell is intended for footnotes, see-also, and other such information.
== Presentation parameters ==
=== Italic titles ===
Titles of articles with infoboxes may be made italic by passing the <code>italic title</code> parameter.
* Turn on italic titles by passing |italic title=<nowiki>{{{italic title|}}}</nowiki> from the infobox.
* Turn off by default (notably because only Latin script may be safely rendered in this style and italic may be needed to distinguish foreign language from local English language only in that script, but would be difficult to read for other scripts) but allow some instances to be made italic by passing |italic title=<nowiki>{{{italic title|no}}}</nowiki>
* Do not make any titles italic by not passing the parameter at all.
=== CSS styling ===
; bodystyle : Applies to the infobox table as a whole
; titlestyle : Applies only to the title caption. Adding a background color is usually inadvisable since the text is rendered "outside" the infobox.
; abovestyle : Applies only to the "above" cell at the top. The default style has font-size:125%; since this cell is usually used for a title, if you want to use the above cell for regular-sized text include "font-size:100%;" in the abovestyle.
; imagestyle : Applies to the cell the image is in. This includes the text of the image caption, but you should set text properties with captionstyle instead of imagestyle in case the caption is moved out of this cell in the future.
; captionstyle : Applies to the text of the image caption.
; rowstyle(n) : This parameter is inserted into the <code>style</code> attribute for the specified row.
; headerstyle : Applies to all header cells
; labelstyle : Applies to all label cells
; datastyle : Applies to all data cells
; belowstyle : Applies only to the below cell
=== HTML classes and microformats ===
; bodyclass : This parameter is inserted into the <code>class</code> attribute for the infobox as a whole.
; titleclass : This parameter is inserted into the <code>class</code> attribute for the infobox's '''title''' caption.
<!-- currently not implemented in Lua module
; aboverowclass : This parameter is inserted into the <code>class</code> attribute for the complete table row the '''above''' cell is on.
-->
; aboveclass : This parameter is inserted into the <code>class</code> attribute for the infobox's '''above''' cell.
; subheaderrowclass(n) : This parameter is inserted into the <code>class</code> attribute for the complete table row the '''subheader''' is on.
; subheaderclass(n) : This parameter is inserted into the <code>class</code> attribute for the infobox's '''subheader'''.
; imagerowclass(n) : These parameters are inserted into the <code>class</code> attribute for the complete table row their respective '''image''' is on.
; imageclass : This parameter is inserted into the <code>class</code> attribute for the '''image'''.
; rowclass(n) : This parameter is inserted into the <code>class</code> attribute for the specified row including the '''label''' and '''data''' cells.
; class(n) : This parameter is inserted into the <code>class</code> attribute for the '''data''' cell of the specified row. If there's no '''data''' cell it has no effect.
<!-- currently not implemented in Lua module
; belowrowclass : This parameter is inserted into the <code>class</code> attribute for the complete table row the '''below''' cell is on.
-->
; belowclass : This parameter is inserted into the <code>class</code> attribute for the infobox's '''below''' cell.
This template supports the addition of microformat information. This is done by adding "class" attributes to various data cells, indicating what kind of information is contained within. Multiple class names may be specified, separated by spaces, some of them being used as selectors for custom styling according to a project policy or to the skin selected in user preferences, others beig used for microformats.
To flag an infobox as containing [[w:hCard|hCard]] information, for example, add the following parameter:
<pre style="overflow:auto">
| bodyclass = vcard
</pre>{{clear}}
And for each row containing a data cell that's part of the vcard, add a corresponding class parameter:
<pre style="overflow:auto">
| class1 = fn
| class2 = org
| class3 = tel
</pre>{{clear}}
...and so forth. "above" and "title" can also be given classes, since these are usually used to display the name of the subject of the infobox.
See [[w:microformat]] for more information on microformats in general.
== Examples ==
Notice how the row doesn't appear in the displayed infobox when a '''label''' is defined without an accompanying '''data''' cell, and how all of them are displayed when a '''header''' is defined on the same row as a '''data''' cell. Also notice that '''subheaders''' are not bold by default like the '''headers''' used to split the main data section, because this role is meant to be for the '''above''' cell :
{{Infobox
|name = Infobox/doc
|bodystyle =
|titlestyle =
|abovestyle = background:#cfc;
|subheaderstyle =
|title = Test Infobox
|above = Above text
|subheader = Subheader above image
|subheader2 = Second subheader
|imagestyle =
|captionstyle =
|image = [[File:Example-serious.jpg|200px|alt=Example alt text]]
|caption = Caption displayed below File:Example-serious.jpg
|headerstyle = background:#ccf;
|labelstyle = background:#ddf;
|datastyle =
|header1 = Header defined alone
| label1 =
| data1 =
|header2 =
| label2 = Label defined alone does not display (needs data, or is suppressed)
| data2 =
|header3 =
| label3 =
| data3 = Data defined alone
|header4 = All three defined (header, label, data, all with same number)
| label4 = does not display (same number as a header)
| data4 = does not display (same number as a header)
|header5 =
| label5 = Label and data defined (label)
| data5 = Label and data defined (data)
|belowstyle = background:#ddf;
|below = Below text
}}
<pre style="overflow:auto">
{{Infobox
|name = {{subst:PAGENAME}}
|bodystyle =
|titlestyle =
|abovestyle = background:#cfc;
|subheaderstyle =
|title = Test Infobox
|above = Above text
|subheader = Subheader above image
|subheader2 = Second subheader
|imagestyle =
|captionstyle =
| image = [[File:Example-serious.jpg|200px|alt=Example alt text]]
|caption = Caption displayed below Example-serious.jpg
|headerstyle = background:#ccf;
|labelstyle = background:#ddf;
|datastyle =
|header1 = Header defined alone
| label1 =
| data1 =
|header2 =
| label2 = Label defined alone does not display (needs data, or is suppressed)
| data2 =
|header3 =
| label3 =
| data3 = Data defined alone
|header4 = All three defined (header, label, data, all with same number)
| label4 = does not display (same number as a header)
| data4 = does not display (same number as a header)
|header5 =
| label5 = Label and data defined (label)
| data5 = Label and data defined (data)
|belowstyle = background:#ddf;
|below = Below text
}}
</pre>{{clear}}
For this example, the '''bodystyle''' and '''labelstyle''' parameters are used to adjust the infobox width and define a default width for the column of labels:
{{Infobox
|name = Infobox/doc
|bodystyle = width:20em
|titlestyle =
|title = Test Infobox
|headerstyle =
|labelstyle = width:33%
|datastyle =
|header1 =
| label1 = Label 1
| data1 = Data 1
|header2 =
| label2 = Label 2
| data2 = Data 2
|header3 =
| label3 = Label 3
| data3 = Data 3
|header4 = Header 4
| label4 =
| data4 =
|header5 =
| label5 = Label 5
| data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|belowstyle =
|below = Below text
}}
<pre style="overflow: auto">
{{Infobox
|name = {{subst:PAGENAME}}
|bodystyle = width:20em
|titlestyle =
|title = Test Infobox
|headerstyle =
|labelstyle = width:33%
|datastyle =
|header1 =
| label1 = Label 1
| data1 = Data 1
|header2 =
| label2 = Label 2
| data2 = Data 2
|header3 =
| label3 = Label 3
| data3 = Data 3
|header4 = Header 4
| label4 =
| data4 =
|header5 =
| label5 = Label 5
| data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|belowstyle =
|below = Below text
}}
</pre>{{clear}}
== Embedding ==
One infobox template can be embedded into another using the |child= parameter or the |embed= parameter. This feature can be used to create a modular infobox, or to create better-defined logical sections. Long ago, it was necessary to use embedding in order to create infoboxes with more than 99 rows; but nowadays there's no limit to the number of rows that can be defined in a single instance of <code><nowiki>{{infobox}}</nowiki></code>.
{{Infobox
| title = Top level title
| data1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| data2 = {{Infobox | decat = yes | child = yes
|title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
<pre style="overflow:auto">
{{Infobox
| title = Top level title
| data1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| data2 = {{Infobox | decat = yes | child = yes
|title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
</pre>{{clear}}
Note, in the examples above, the child infobox is placed in a <code>data</code> field, not a <code>header</code> field. Notice that the section subheadings are not in bold font if bolding is not explicitly specified. To obtain bold section headings, place the child infobox in a '''header''' field (but not in a '''label''' field because it would not be displayed!), either using
{{Infobox
| title = Top level title
| header1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| header2 = {{Infobox | decat = yes | child = yes
| title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
<pre style="overflow:auto">
{{Infobox
| title = Top level title
| header1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| header2 = {{Infobox | decat = yes | child = yes
| title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
</pre>{{clear}}
or,
{{Infobox
| title = Top level title
| header1 = First subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 1.1
| data1 = Data 1.1
}}
| header2 = Second subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
<pre style="overflow:auto">
{{Infobox
| title = Top level title
| header1 = First subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 1.1
| data1 = Data 1.1
}}
| header2 = Second subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
</pre>{{clear}}
Note that omitting the |title= parameter, and not including any text preceding the embedded infobox, may result in spurious blank table rows, creating gaps in the visual presentation.
== Subboxes ==
An alternative method for embedding is to use |subbox=yes, which removes the outer border from the infobox, but preserves the interior structure. One feature of this approach is that the parent and child boxes need not have the same structure, and the label and data fields are not aligned between the parent and child boxes because they are not in the same parent table.
{{Infobox
| headerstyle = background-color:#eee;
| labelstyle = background-color:#eee;
| header1 = Main 1
| header2 = Main 2
| data3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| data4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| label5 = Label 5 | data5 = Data 5
| header6 = Main 6
}}
<source lang="sass" style="overflow:auto">
{{Infobox
| headerstyle = background-color:#eee;
| labelstyle = background-color:#eee;
| header1 = Main 1
| header2 = Main 2
| data3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| data4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| label5 = Label 5 | data5 = Data 5
| header6 = Main 6
}}
</source>{{clear}}
Note that the default padding of the parent data cell containing each subbox is still visible, so the subboxes are slightly narrower than the parent box and there's a higher vertical spacing between standard cells of the parent box than between cells of distinct subboxes.
== Full blank syntax ==
(Note: there is no limit to the number of possible rows; only 20 are given below since infoboxes larger than that will be relatively rare. Just extend the numbering as needed. The microformat "class" parameters are also omitted as they are not commonly used.)
<pre style="overflow:auto">
{{Infobox
| name = {{subst:PAGENAME}}
| child = {{{child|}}}
| subbox = {{{subbox|}}}
| italic title = {{{italic title|no}}}
| bodystyle =
| titlestyle =
| abovestyle =
| subheaderstyle =
| title =
| above =
| subheader =
| imagestyle =
| captionstyle =
| image =
| caption =
| image2 =
| caption2 =
| headerstyle =
| labelstyle =
| datastyle =
| header1 =
| label1 =
| data1 =
| header2 =
| label2 =
| data2 =
| header3 =
| label3 =
| data3 =
| header4 =
| label4 =
| data4 =
| header5 =
| label5 =
| data5 =
| header6 =
| label6 =
| data6 =
| header7 =
| label7 =
| data7 =
| header8 =
| label8 =
| data8 =
| header9 =
| label9 =
| data9 =
| header10 =
| label10 =
| data10 =
| header11 =
| label11 =
| data11 =
| header12 =
| label12 =
| data12 =
| header13 =
| label13 =
| data13 =
| header14 =
| label14 =
| data14 =
| header15 =
| label15 =
| data15 =
| header16 =
| label16 =
| data16 =
| header17 =
| label17 =
| data17 =
| header18 =
| label18 =
| data18 =
| header19 =
| label19 =
| data19 =
| header20 =
| label20 =
| data20 =
| belowstyle =
| below =
}}
</pre>{{clear}}
==See also==
* [[Module:Infobox]], the [[mw:Lua/Overview|Lua]] module on which this template is based
* [[w:Wikipedia:List of infoboxes|List of infoboxes]]
38686ab37d436b2158042649ea6e552897fbcfa5
Module:Yesno
828
359
615
2022-10-01T17:25:37Z
m>Pppery
0
Pppery moved page [[Module:Yesno/2]] to [[Module:Yesno]] without leaving a redirect
Scribunto
text/plain
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or tonumber(val) == 0
then
return false
else
return default
end
end
f767643e7d12126d020d88d662a3dd057817b9dc
Module:No globals
828
358
613
2022-10-01T17:28:48Z
m>Pppery
0
Pppery moved page [[Module:No globals/2]] to [[Module:No globals]] without leaving a redirect
Scribunto
text/plain
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
error('Tried to read nil global ' .. tostring(k), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error('Tried to write global ' .. tostring(k), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)
8ce3969f7d53b08bd00dabe4cc9780bc6afd412a
Module:Documentation/config
828
350
595
2022-10-01T17:37:53Z
m>Pppery
0
Pppery moved page [[Module:Documentation/config/2]] to [[Module:Documentation/config]] without leaving a redirect
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Template documentation'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Module documentation'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Summary'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documentation'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'view'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edit'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'history'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purge'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'The above [[w:Wikipedia:Template documentation|documentation]] is [[mw:Help:Transclusion|transcluded]] from $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[mw:Extension:Scribunto/Lua reference manual|Scribunto module]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages."
cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'sandbox'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'sandbox'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edit'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'create'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'diff'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Create sandbox version of $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirror'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/mirror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'testcases'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'testcases'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edit'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'run'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Add categories to the $1 subpage.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Subpages of this $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'template'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'module'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'page'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['templatestyles']
-- The name of the TemplateStyles page where CSS is kept.
-- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed.
cfg['templatestyles'] = 'Module:Documentation/styles.css'
-- cfg['container']
-- Class which can be used to set flex or grid CSS on the
-- two child divs documentation and documentation-metadata
cfg['container'] = 'documentation-container'
-- cfg['main-div-classes']
-- Classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'documentation'
-- cfg['main-div-heading-class']
-- Class for the main heading for templates and modules and assoc. talk spaces
cfg['main-div-heading-class'] = 'documentation-heading'
-- cfg['start-box-class']
-- Class for the start box
cfg['start-box-class'] = 'documentation-startbox'
-- cfg['start-box-link-classes']
-- Classes used for the [view][edit][history] or [create] links in the start box.
-- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]]
cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks'
-- cfg['end-box-class']
-- Class for the end box.
cfg['end-box-class'] = 'documentation-metadata'
-- cfg['end-box-plainlinks']
-- Plainlinks
cfg['end-box-plainlinks'] = 'plainlinks'
-- cfg['toolbar-class']
-- Class added for toolbar links.
cfg['toolbar-class'] = 'documentation-toolbar'
-- cfg['clear']
-- Just used to clear things.
cfg['clear'] = 'documentation-clear'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
d70e8b1402a2bbe08a1fef4b75d743e661af0c95
Template:Documentation subpage
10
347
589
2022-10-01T17:51:17Z
m>Pppery
0
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}}
| <!--(this template has been transcluded on a /doc or /{{{override}}} page)-->
</includeonly><!--
-->{{#ifeq:{{{doc-notice|show}}} |show
| {{Mbox
| type = notice
| style = margin-bottom:1.0em;
| image = [[File:Edit-copy green.svg|40px|alt=|link=]]
| text =
'''This is a documentation subpage''' for '''{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}'''.<br/> It contains usage information, [[mw:Help:Categories|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} | page}}}}.
}}
}}<!--
-->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!--
-->{{#if:{{{inhibit|}}} |<!--(don't categorize)-->
| <includeonly><!--
-->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}
| [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]]
| [[Category:Documentation subpages without corresponding pages]]
}}<!--
--></includeonly>
}}<!--
(completing initial #ifeq: at start of template:)
--><includeonly>
| <!--(this template has not been transcluded on a /doc or /{{{override}}} page)-->
}}<!--
--></includeonly><noinclude>{{Documentation}}</noinclude>
471e685c1c643a5c6272e20e49824fffebad0448
Template:User github
10
361
619
2022-10-04T16:14:11Z
m>MirahezeGDPR a51581232c7cc84ec1a32c40d8489548
0
More consistent with other userboxes + this is only supposed to be for accounts
wikitext
text/x-wiki
{{Userbox
| id = [[File:GitLogo.png|43px]]
| float = {{{float|right}}}
| border-c = #808080
| id-c = #FFFFFF
| info-c = #DBDBDB
| info = {{#if:{{{username|}}}|''{{PAGENAME}}''|This user}} has an account on GitHub{{#if:{{{account|}}}| as ''[[github:{{{account}}}|{{{account}}}]]''|}}.
| nocat = {{{nocat|}}}
| usercategory = Users who use GitHub
}}<noinclude>{{Documentation}}[[Category:Social media userboxes|{{PAGENAME}}]]</noinclude>
08ef531d5b5a1e69b84939e0fc1f1d0d622f38ad
Template:GitBox
10
364
625
2022-10-05T20:45:15Z
m>Pppery
0
Rm cat, don't think redirects need to be categorized here
wikitext
text/x-wiki
#REDIRECT [[Template:User github]]
5619080886a72031f4953c16bc7715c10fe18e26
Template:Userbox
10
362
621
2022-10-05T21:25:59Z
m>Pppery
0
Already on doc
wikitext
text/x-wiki
{{#invoke:userbox|userbox}}<noinclude>{{documentation}}</noinclude>
6813e8e31cadc62df2379b5fae9ea23c23f29e97
Template:Infobox Miraheze user/doc
10
345
581
2022-10-21T03:04:11Z
m>MirahezeGDPR a51581232c7cc84ec1a32c40d8489548
0
/* Example */ Guessing this was imported from Wikipedia.. but Miraheze didn't exist in 2007 so updating
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE. -->
== Usage ==
Copy and paste the template below. All parameters are optional. Parameter names '''must''' be in lower case.
{{Infobox Miraheze user
<!-- INFOBOX FORMATTING -------->
| abovecolor =
| color =
| fontcolor =
| abovefontcolor =
| headerfontcolor =
| tablecolor =
<!-- LEAD INFORMATION ---------->
| status = {{{status}}}
| image = Echo_thanks.svg
| image_caption = {{{image_caption}}}
| honorific_prefix = {{{honorific_prefix}}}
| name = {{{name}}}
| honorific_suffix = {{{honorific_suffix}}}
| role = {{{role}}}
| birthname = {{{birthname}}}
| real_name = {{{real_name}}}
| gender = {{{gender}}}
| custom_gender = {{{custom_gender}}}
| pronoun = {{{pronoun}}}
| languages = {{{languages}}}
| birthdate = {{{birthdate}}}
| birthplace = {{{birthplace}}}
| location = {{{location}}}
| country = {{{country}}}
| timezone = {{{timezone}}}
| current_time = {{{current_time}}}
| nationality = {{{nationality}}}
| ethnicity = {{{ethnicity}}}
| race = {{{race}}}
| height = {{{height}}}
| weight = {{{height}}}
| hair = {{{hair}}}
| eyes = {{{eyes}}}
| handedness = {{{handedness}}}
| blood_type = {{{blood_type}}}
| sexuality = {{{sexuality}}}
| iq = {{{iq}}}
| personality_type = {{{personality_type}}}
| alignment = {{{alignment}}}
<!-- FAMILY & FRIENDS ---------->
| marital status = {{{marital status}}}
| spouse = {{{spouse}}}
| girlfriend = {{{girlfriend}}}
| boyfriend = {{{boyfriend}}}
| parents = {{{parents}}}
| children = {{{children}}}
| siblings = {{{siblings}}}
| pets = {{{pets}}}
<!-- EDUCATION & EMPLOYMENT ---->
| occupation = {{{occupation}}}
| employer = {{{employer}}}
| education = {{{education}}}
| primaryschool = {{{primaryschool}}}
| intschool = {{{intschool}}}
| highschool = {{{highschool}}}
| college = {{{college}}}
| university = {{{university}}}
| classes = {{{classes}}}
<!-- INTERESTS & BELIEFS ------->
| hobbies = {{{hobbies}}}
| religion = {{{religion}}}
| politics = {{{politics}}}
| aliases = {{{aliases}}}
| movies = {{{movies}}}
| shows = {{{shows}}}
| books = {{{books}}}
| interests = {{{interests}}}
<!-- CONTACT INFO -------------->
| website = {{{website}}}
| blog = {{{blog}}}
| email = {{{email}}}
| icq = {{{icq}}}
| aim = {{{aim}}}
| gtalk = {{{gtalk}}}
| jabber = {{{jabber}}}
| skype = {{{skype}}}
| msn = {{{msn}}}
| yahoo = {{{yahoo}}}
| mac = {{{mac}}}
| irc = {{{irc}}}
| facebook = {{{facebook}}}
| google+ = {{{google+}}}
| instagram = {{{instagram}}}
| linkedin = {{{linkedin}}}
| myspace = {{{myspace}}}
| pinterest = {{{pinterest}}}
| twitter = {{{twitter}}}
| youtube = {{{youtube}}}
| flickr = {{{flickr}}}
<!-- SUBPAGES ----------------->
| subpages = {{{subpages}}}
<!-- ACCOUNT STATISTICS ------->
| joined_date = {{{joined_date}}}
| first_edit = {{{first_edit}}}
| autoconfirmed = {{{autoconfirmed}}}
| edit_count = {{{edit_count}}}
| permissions = {{{permissions}}}
| signature = {{{signature}}}
<!-- USERBOXES ---------------->
| userboxes = {{{userboxes}}}
<!-- CUSTOM FIELDS ------------>
| custom_header = {{{custom_header}}}
| custom_data = {{{custom_data}}}
| custom_label1 = {{{custom_label1}}}
| custom_data1 = {{{custom_data1}}}
| custom_label2 = {{{custom_label2}}}
| custom_data2 = {{{custom_data2}}}
| custom_label3 = {{{custom_label3}}}
| custom_data3 = {{{custom_data3}}}
| custom_label4 = {{{custom_label4}}}
| custom_data4 = {{{custom_data4}}}
| custom_label5 = {{{custom_label5}}}
| custom_data5 = {{{custom_data5}}}
| custom_label6 = {{{custom_label6}}}
| custom_data6 = {{{custom_data6}}}
| custom_label7 = {{{custom_label7}}}
| custom_data7 = {{{custom_data7}}}
| custom_label8 = {{{custom_label8}}}
| custom_data8 = {{{custom_data8}}}
| custom_label9 = {{{custom_label9}}}
| custom_data9 = {{{custom_data9}}}
}}
<pre style="overflow: auto">
{{Infobox Miraheze user
<!-- INFOBOX FORMATTING -------->
| abovecolor =
| color =
| fontcolor =
| abovefontcolor =
| headerfontcolor =
| tablecolor =
<!-- LEAD INFORMATION ---------->
| title = <!-- optional, defaults to {{BASEPAGENAME}} -->
| status =
| image =
| image_caption =
| image_width =
| name =
| birthname =
| real_name =
| gender = <!-- used to display icon at top. Supports male, female, other, or a custom value. -->
| custom_gender = <!-- used to display "Gender" field in list -->
| pronoun =
| languages =
| birthdate =
| birthplace =
| location =
| country =
| timezone =
| current_time = <!-- example for San Francisco: {{current time|UTC-8}} -->
| nationality =
| ethnicity =
| race =
| height =
| weight =
| hair =
| eyes =
| handedness =
| blood_type =
| sexuality =
| iq =
| personality_type =
| alignment =
<!-- FAMILY & FRIENDS ---------->
| marital status =
| spouse =
| girlfriend =
| boyfriend =
| children =
| siblings =
| parents =
| pets =
<!-- EDUCATION & EMPLOYMENT ---->
| occupation =
| employer =
| education =
| primaryschool =
| intschool =
| highschool =
| college =
| university =
| classes = <!-- For use with Miraheze Campus Ambassadors -->
<!-- INTERESTS & BELIEFS ------->
| hobbies =
| religion =
| politics =
| aliases =
| movies =
| shows =
| books =
| interests =
<!-- CONTACT INFO -------------->
| website = <!-- {{URL|example.com}} -->
| blog = <!-- {{URL|example.com}} -->
| email = <!-- {{no spam|account|example.com}} -->
| icq =
| aim =
| gtalk =
| jabber =
| skype =
| msn =
| yahoo =
| mac =
| irc =
| facebook =
| google+ =
| instagram =
| linkedin =
| myspace =
| pinterest =
| twitter =
| youtube =
| flickr =
<!-- SUBPAGES ----------------->
| subpages =
<!-- ACCOUNT STATISTICS ------->
| joined_date =
| first_edit =
| autoconfirmed = <!-- overrides confirmed parameter -->
| confirmed = <!-- may be used in place of autoconfirmed parameter (displays "Confirmed" as label) -->
| edit_count =
| permissions =
| signature =
<!-- USERBOXES ---------------->
| userboxes =
<!-- CUSTOM FIELDS ------------>
| custom_header =
| custom_data =
| custom_label1 =
| custom_data1 =
| custom_label2 =
| custom_data2 =
| custom_label3 =
| custom_data3 =
| custom_label4 =
| custom_data4 =
| custom_label5 =
| custom_data5 =
| custom_label6 =
| custom_data6 =
| custom_label7 =
| custom_data7 =
| custom_label8 =
| custom_data8 =
| custom_label9 =
| custom_data9 =
}}
</pre>
{{clear}}
==Example==
{{Infobox Miraheze user
| name = Miraheze user
| birthdate = January 1, 1986
| birthplace = Dearborn, MI
| country = United States
| nationality = American
| race = Caucasian
| gender = Female
| location = Houghton, MI
| eyes = Brown
| blood_type = Type O
| sexuality = Heterosexual
| iq = 136
| height = 5'8"
| weight = 116 lbs.
| timezone = Central Time Zone
| pets = 2 dogs <!-- If you are supposed to put pet names, please fix this-->
| children = 1
| marital status = Married
| occupation = Clerk
| highschool = Dearborn High School
| college = Henry Ford Community College
| hobbies = Camping, cooking
| religion = Presbyterian]]
| politics = Democrat
| movies = Forrest Grump, Avatar
| shows = Friends, The Big Bang Theory
| books = Harry Potter
| interests = History, Computers, Engineering
| joined_date = June 3, 2007
| userboxes = {{GitBox}}
}}
<!-- Please add more to the above -->
<pre style="overflow: auto">
{{Infobox Miraheze user
| name = Miraheze user
| birthdate = January 1, 1986
| birthplace = Dearborn, MI
| country = United States
| nationality = American
| race = Caucasian
| gender = Female
| location = Houghton, MI
| eyes = Brown
| blood_type = Type O
| sexuality = Heterosexual
| iq = 136
| height = 5'8"
| weight = 116 lbs.
| timezone = Central Time Zone
| pets = 2 dogs
| children = 1
| marital status = Married
| occupation = Clerk
| highschool = Dearborn High School
| college = Henry Ford Community College
| hobbies = Camping, cooking
| religion = Presbyterian]]
| politics = Democrat
| movies = Forrest Grump, Avatar
| shows = Friends, The Big Bang Theory
| books = Harry Potter
| interests = History, Computers, Engineering
| joined_date = June 3, 2021
| userboxes = {{GitBox}}
}}
</pre>
{{clear}}
== TemplateData ==
<templatedata>
{
"description": "Infobox about yourself. This template should only be used on user pages.",
"params": {
"status": {
"label": "Status"
},
"image_caption": {
"label": "Image caption"
},
"honorific_prefix": {
"label": "Honorific Prefix"
},
"name": {
"label": "Name"
},
"honorific_suffix": {
"label": "Honorific Suffix"
},
"role": {
"label": "Role"
},
"birthname": {
"label": "Birth name"
},
"real_name": {
"label": "Real name"
},
"gender": {
"label": "Gender"
},
"custom_gender": {
"label": "Custom gender"
},
"pronoun": {
"label": "Preferred pronoun"
},
"languages": {
"label": "Language"
},
"birthdate": {
"label": "Birthdate"
},
"birthplace": {
"label": "Birthplace"
},
"location": {
"label": "Location"
},
"country": {
"label": "Country"
},
"timezone": {
"label": "Timezone"
},
"current_time": {
"label": "Current Time"
},
"nationality": {
"label": "Nationality"
},
"ethnicity": {
"label": "Ethnicity"
},
"race": {
"label": "Race"
},
"height": {
"label": "Height"
},
"weight": {
"label": "Weight"
},
"hair": {
"label": "Hair"
},
"eyes": {
"label": "Eyes"
},
"handedness": {
"label": "Handedness"
},
"blood_type": {
"label": "Blood Type"
},
"sexuality": {
"label": "Sexuality"
},
"iq": {
"label": "IQ"
},
"personality_type": {
"label": "Personality Type"
},
"alignment": {
"label": "Alignment"
},
"marital status": {
"label": "Marital Status"
},
"spouse": {
"label": "Spouse"
},
"girlfriend": {
"label": "Girlfriend"
},
"boyfriend": {
"label": "Boyfriend"
},
"parents": {
"label": "Parents"
},
"children": {
"label": "Children"
},
"siblings": {
"label": "Siblings"
},
"pets": {
"label": "Pets"
},
"occupation": {
"label": "Occupation"
},
"employer": {
"label": "Employer"
},
"education": {
"label": "Education"
},
"primaryschool": {
"label": "Primary School"
},
"intschool": {
"label": "Intermediate School"
},
"highschool": {
"label": "High School"
},
"college": {
"label": "College"
},
"university": {
"label": "University"
},
"classes": {
"label": "Classes"
},
"hobbies": {
"label": "Hobbies"
},
"religion": {
"label": "Religion"
},
"politics": {
"label": "Politics"
},
"aliases": {
"label": "Aliases"
},
"movies": {
"label": "Movies"
},
"shows": {
"label": "Shows"
},
"books": {
"label": "Books"
},
"interests": {
"label": "Interests"
},
"website": {
"label": "Website"
},
"blog": {
"label": "Blog"
},
"email": {
"label": "Email"
},
"icq": {
"label": "ICQ"
},
"aim": {
"label": "AIM"
},
"gtalk": {
"label": "GTalk"
},
"jabber": {
"label": "Jabber"
},
"skype": {
"label": "Skype"
},
"msn": {
"label": "MSN"
},
"yahoo": {
"label": "Yahoo"
},
"mac": {
"label": "Mac"
},
"irc": {
"label": "IRC"
},
"facebook": {
"label": "Facebook"
},
"google+": {
"label": "Google+"
},
"instagram": {
"label": "Instagram"
},
"linkedin": {
"label": "LinkedIn"
},
"pinterest": {
"label": "Pinterest"
},
"twitter": {
"label": "Twitter"
},
"youtube": {
"label": "YouTube"
},
"flickr": {
"label": "Flickr"
},
"subpages": {
"label": "Subpages"
},
"joined_date": {
"label": "Joined Date"
},
"first_edit": {
"label": "First Edit"
},
"admin": {
"label": "Date granted sysop"
},
"bureaucrat": {
"label": "Date granted bureaucrat"
},
"edit_count": {
"label": "Edit Count"
},
"permissions": {
"label": "Permissions"
},
"signature": {
"label": "Signature"
},
"userboxes": {
"label": "User boxes"
}
}
}
</templatedata>
e5cb5aa9d7358ffc1e186b327fc6688f7a35e2dc
Module:Message box
828
356
609
2022-10-21T19:39:49Z
m>Pppery
0
These can just go, the first for being very Wikipedia-specific, and the second for being almost impossible to import properly
Scribunto
text/plain
-- This is a meta-module for producing message box templates, including
-- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}.
-- Load necessary modules.
require('Module:No globals')
local getArgs
local yesno = require('Module:Yesno')
local templatestyles = 'Module:Message box/styles.css'
-- Get a language object for formatDate and ucfirst.
local lang = mw.language.getContentLanguage()
-- Define constants
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {user = 'tmbox', talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ombox
obj.cfg = cfg.ombox
end
elseif ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <small class='date-container'>''(<span class='date'>%s</span>)''</small>", date)
end
self.info = args.info
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
if cfg.imageEmptyCellStyle then
self.imageEmptyCellStyle = 'border:none;padding:0px;width:1px'
end
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):css('width', '52px')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
:cssText(self.imageEmptyCellStyle or nil)
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) and not self.isSmall then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):css('width', '52px')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:css('text-align', 'center')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
return box:export()
end
local function templatestyles(frame, src)
return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = templatestyles} }
.. 'CONFIG_MODULE'
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
be00cd389f9f2afcd361e5d5e33622839555cbd9
Template:Para
10
365
627
2022-10-21T19:52:33Z
m>Pppery
0
wikitext
text/x-wiki
<code class="tpl-para" style="word-break:break-word;{{SAFESUBST:<noinclude />#if:{{{plain|}}}|border: none; background-color: inherit;}} {{SAFESUBST:<noinclude />#if:{{{style|}}}|{{{style}}}}}">|{{SAFESUBST:<noinclude />#if:{{{1|}}}|{{{1}}}=}}{{{2|}}}</code><noinclude>
{{Documentation}}
<!--Categories and interwikis go near the bottom of the /doc subpage.-->
</noinclude>
7be5bee75307eae9342bbb9ff3a613e93e93d5a7
Module:Message box/configuration
828
357
611
2022-10-21T22:38:02Z
m>Pppery
0
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
templateErrorCategory = 'Article message templates with missing parameters',
templateErrorParamsToCheck = {'issue', 'fix'},
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
imageEmptyCellStyle = true,
templateCategory = 'Talk message boxes'
}
}
c6bd9191861b23e474e12b19c694335c4bc3af5f
Template:Mbox
10
355
607
2022-10-21T23:02:23Z
m>Pppery
0
Reverted edits by [[Special:Contributions/Pppery|Pppery]] ([[User talk:Pppery|talk]]) to last revision by [[User:wikipedia>Amorymeltzer|wikipedia>Amorymeltzer]]
wikitext
text/x-wiki
{{#invoke:Message box|mbox}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
c262e205f85f774a23f74119179ceea11751d68e
Template:Infobox Miraheze user
10
344
579
2022-12-16T04:52:50Z
m>Pppery
0
wikitext
text/x-wiki
{{Infobox
| bodyclass = vcard
| bodystyle = {{#if:{{{fontcolor|}}}|color: {{{fontcolor}}};}} {{#if:{{{width|}}}|width: {{{width}}};}} {{#if:{{{tablecolor|}}}|background-color: {{{tablecolor}}}}}
| headerstyle = {{#if:{{{color|}}}|background-color: {{{color}}}}}; {{#if:{{{headerfontcolor|}}}|color: {{{headerfontcolor}}}}}
| abovestyle = {{#if:{{{abovecolor|}}}|background-color: {{{abovecolor}}}|}}; {{#if:{{{abovefontcolor|}}}|color: {{{abovefontcolor}}}|}}
| title = <includeonly>{{#if:{{{abovefontcolor|}}}||{{{title|{{BASEPAGENAME}}}}} {{#if:{{{status|}}}|<br /><small>{{{status}}}</small>}}}}</includeonly>
| above = {{#if:{{{abovefontcolor|}}}|{{{title|{{BASEPAGENAME}}}}} {{#if:{{{status|}}}|<br /><small>{{{status}}}</small>}}}}
| subheader = — <span class="role">{{#if:{{{role|}}}|{{{role}}}|[[:metawiki:|Mirahezian]]}}</span> {{#switch:{{lc:{{{gender|{{Gender:{{#titleparts:{{BASEPAGENAME}}|1}}|m|f|NONE}}}}}}}|male|m=<abbr class="gender" style="font-size: larger;" title="<nowiki>male</nowiki>">♂</abbr>[[Category:Male Mirahezians]] |female|f=<abbr class="gender" style="font-size: larger;" title="<nowiki>female</nowiki>">♀</abbr>[[Category:Female Mirahezians]] |other|o=<abbr class="gender" title="<nowiki>other gender</nowiki>"><span style="line-height: 12px;">[[File:Gendersign.svg|x12px|alt=other gender|link=]]</span></abbr> ||none=|#default=<span style="line-height: 12px;">[[File:Gendersign.svg|x12px|alt={{{gender}}}|link=]]</span></abbr> }}
| image = {{#if:{{{image|}}}|[[File:{{{image|}}}|{{{image_width|238px}}}|{{{image_caption|}}}]]}}
| caption = {{{image_caption|}}}
| label1 = Name
| data1 = {{#if:{{{honorific prefix|{{{honorific_prefix|}}}}}}|<span class="honorific-prefix">{{{honorific prefix|{{{honorific_prefix|}}}}}} </span>}}{{#if:{{{name|}}}|<includeonly><span class="fn">{{{name|}}}</span></includeonly>}}{{#if:{{{honorific suffix|{{{honorific_suffix|}}}}}}| <span class="honorific-suffix">{{{honorific suffix|{{{honorific_suffix|}}}}}}</span>}}
| label2 = Born
| data2 = {{#if:{{{birthname|{{{birth_name|}}}}}}|<span class="nickname">{{{birthname|{{{birth_name}}}}}}</span>}} {{{birthdate|{{{birth_date|}}}}}} {{#if:{{{birthplace|{{{birth_place|}}}}}}|<span class="birthplace">{{{birthplace|{{{birth_place}}}}}}</span>}}
| label3 = Name in real life
| data3 = {{{real_name|}}}
| class3 = nickname
| label4 = Gender
| data4 = {{{custom_gender|}}}
| label5 = Preferred pronoun
| data5 = {{{pronoun|}}}
| label6 = Nationality
| data6 = {{{nationality|}}}
| class6 = category
| label7 = Country
| data7 = {{ucfirst:{{{country|}}}}}
| label8 = Current location
| data8 = {{{location|}}}
| class8 = label
| label9 = Languages
| data9 = {{{languages|}}}
| class9 = category
| label10 = Time zone
| data10 = {{{timezone|}}}
| label11 = Current time
| data11 = {{{current_time|}}}
| label13 = Ethnicity
| data13 = {{{ethnicity|}}}
| class13 = category
| label14 = Race
| data14 = {{{race|}}}
| class14 = category
| label15 = Height
| data15 = {{{height|}}}
| label16 = Weight
| data16 = {{{weight|}}}
| label17 = Hair
| data17 = {{{hair|}}}
| label18 = Eyes
| data18 = {{{eyes|}}}
| label19 = [[w:Handedness|Handedness]]
| data19 = {{{handedness|}}}
| label20 = [[w:Blood type|Blood type]]
| data20 = {{{blood_type|}}}
| label21 = Sexuality
| data21 = {{{sexuality|}}}
| class21 = category
| label22 = [[w:Intelligence quotient|IQ]]
| data22 = {{{iq|}}}
| label23 = [[w:Myers–Briggs Type Indicator|Personality type]]
| data23 = {{{personality_type|}}}
| class23 = category
| label24 = {{#switch:{{lc:{{{alignment|}}}}}|lawful good|neutral good|chaotic good|lawful neutral|neutral|true neutral|chaotic neutral|lawful evil|neutral evil|chaotic evil=[[w:Alignment (Dungeons & Dragons)|Alignment]]|light side|lightside|light|jedi|dark side|darkside|dark|sith=[[w:Alignment (role-playing games)#Star Wars|Alignment]]|#default=[[w:Alignment (role-playing games)|Alignment]]}}
| data24 = {{#switch:{{lc:{{{alignment|}}}}}|lawful good|neutral good|chaotic good|lawful neutral|neutral|true neutral|chaotic neutral|lawful evil|neutral evil|chaotic evil=[[{{{alignment|}}}]]|light side|lightside|light|jedi=[[w:Force (Star Wars)|Light Side]]|dark side|darkside|dark|sith=[[w:Dark side (Star Wars)|Dark Side]]|#default={{{alignment|}}}}}
| class24 = category
| header25 = {{#if:{{{marital status|}}}{{{spouse|}}}{{{girlfriend|}}}{{{boyfriend|}}}{{{children|}}}{{{siblings|}}}{{{pets|}}}|Family and friends}}
| label26 = Marital status
| data26 = {{{marital status|}}}
| class26 = category
| label27 = Spouse
| data27 = {{{spouse|{{{partner|}}}}}}
| label28 = Girlfriend
| data28 = {{{girlfriend|}}}
| label29 = Boyfriend
| data29 = {{{boyfriend|}}}
| label30 = Children
| data30 = {{{children|}}}
| label31 = Siblings
| data31 = {{{siblings|}}}
| label32 = Parents
| data32 = {{{parents|}}}
| label33 = Pets
| data33 = {{{pets|}}}
| header34 = {{#if:{{{occupation|}}}{{{employer|}}}{{{education|}}}{{{college|}}}{{{university|}}}{{{highschool|}}}|Education and employment}}
| label35 = Occupation
| data35 = {{{occupation|}}}
| class35 = role
| label36 = Employer
| data36 = {{{employer|}}}
| class36 = org
| label37 = Education
| data37 = {{{education|}}}
| label38 = Primary school
| data38 = {{{primaryschool|}}}
| label39 = Intermediate school
| data39 = {{{intschool|}}}
| label40 = High school
| data40 = {{{highschool|}}}
| label41 = College
| data41 = {{{college|}}}
| label42 = University
| data42 = {{{university|}}}
| label43 = Classes
| data43 = {{{classes|}}}
| header44 = {{#if:{{{hobbies|}}}{{{religion|}}}{{{politics|}}}{{{aliases|}}}{{{movies|}}}{{{books|}}}|Hobbies, favourites and beliefs}}
| label45 = Hobbies
| data45 = {{{hobbies|}}}
| label46 = Religion
| data46 = {{{religion|}}}
| class46 = category
| label47 = Politics
| data47 = {{{politics|}}}
| label48 = [[w:Pseudonym|Aliases]]
| data48 = {{{aliases|}}}
| class48 = nickname
| label49 = Movies
| data49 = {{{movies|}}}
| label50 = Shows
| data50 = {{{shows|}}}
| label51 = Books
| data51 = {{{books|}}}
| header52 = {{#if:{{{interests|}}}|Interests}}
| data53 = {{#if:{{{interests|}}}|<div style="text-align: left">
{{{interests|}}}
</div>}}
| header54 = {{#if:{{{website|}}}{{{blog|}}}{{{email|}}}{{{icq|}}}{{{aim|}}}{{{gtalk|}}}{{{jabber|}}}{{{skype|}}}{{{mac|}}}{{{irc|}}}{{{facebook|}}}{{{google+|}}}{{{instagram|}}}{{{linkedin|}}}{{{myspace|}}}{{{pinterest|}}}{{{twitter|}}}{{{youtube|}}}{{{flickr|}}}|Contact info}}
| label55 = Website
| data55 = {{{website|}}}
| label56 = Blog
| data56 = {{{blog|}}}
| label57 = Email
| data57 = {{{email|}}}
| label58 = [[w:ICQ|ICQ]]
| data58 = {{#if:{{{icq|}}}|[https://people.icq.com/people/about_me.php?uin={{urlencode:{{{icq}}}}} {{{icq}}}]}}
| label59 = [[w:AOL Instant Messenger|AIM]]
| data59 = {{{aim|}}}
| label60 = [[w:GTalk|GTalk]]
| data60 = {{{gtalk|}}}
| label61 = [[w:Extensible Messaging and Presence Protocol|XMPP]]
| data61 = {{{jabber|}}}
| label62 = [[w:Skype|Skype]]
| data62 = {{{skype|}}}
| label63 = .Mac
| data63 = {{{mac|}}}
| label64 = [[w:IRC|IRC]]
| data64 = {{{irc|}}}
| label65 = [[w:Facebook|Facebook]]
| data65 = {{#if:{{{facebook|}}}|[https://www.facebook.com/{{urlencode:{{{facebook}}}}} {{{facebook}}}]}}
| label67 = [[w:Instagram|Instagram]]
| data67 = {{#if:{{{instagram|}}}|[https://www.instagram.com/{{urlencode:{{{instagram}}}}} {{{instagram}}}]}}
| label68 = [[w:LinkedIn|LinkedIn]]
| data68 = {{#if:{{{linkedin|}}}|[https://www.linkedin.com/profile/view?&name={{urlencode:{{{linkedin}}}}} {{{linkedin}}}]}}
| label69 = [[w:Myspace|Myspace]]
| data69 = {{{myspace|}}}
| label70 = [[w:Pinterest|Pinterest]]
| data70 = {{{pinterest|}}}
| label71 = [[w:Twitter|Twitter]]
| data71 = {{#if:{{{twitter|}}}|[https://twitter.com/{{urlencode:{{{twitter}}}}} {{{twitter}}}]}}
| label72 = [[w:YouTube|YouTube]]
| data72 = {{#if:{{{youtube|}}}|[https://www.youtube.com/user/{{urlencode:{{{youtube}}}}} {{{youtube}}}]}}
| label73 = [[w:Flickr|Flickr]]
| data73 = {{#if:{{{flickr|}}}|[https://www.flickr.com/photos/{{urlencode:{{{flickr}}}}} {{{flickr}}}]}}
| header74 = {{#if:{{{subpages|}}}|[[Special:Prefixindex/User:{{BASEPAGENAMEE}}|{{BASEPAGENAME}} subpages]]}}
| data75 = {{#if:{{{subpages|}}}|<div style="text-align: left">
{{{subpages|}}}
</div>}}
| header76 = {{#if:{{{joined_date|}}}{{{first_edit|}}}{{{edit_count|}}}{{{permissions|}}}|Account statistics}}
| label77 = Joined
| data77 = {{{joined_date|}}}
| label78 = First edit
| data78 = {{{first_edit|}}}
| label79 = {{#if:{{{autoconfirmed|}}}|{{#if:{{{confirmed|}}}|Confirmed<br />}}Autoconfirmed|{{#if:{{{confirmed|}}}|Confirmed}}}}
| data79 = {{#if:{{{autoconfirmed|}}}|{{#if:{{{confirmed|}}}|{{{confirmed}}}<br />}}{{{autoconfirmed}}}|{{#if:{{{confirmed|}}}|{{{confirmed}}}}}}}
| label90 = Administrator
| data90 = {{{admin|}}}
| label91 = Bureaucrat
| data91 = {{{bureaucrat|}}}
| label95 = {{#if:{{{permissions|}}}|<span class="plainlinks">[{{fullurl:Special:ListUsers|limit=1&username={{ROOTPAGENAMEE}}}} Permissions]</span>}}
| data95 = {{{permissions|}}}
| label98 = Signature
| data98 = {{{signature|}}}
| data101 = {{{module|}}}
| data102 = {{{module2|}}}
| data103 = {{{module3|}}}
| header104 = {{#if:{{{userboxes|}}}|Userboxes}}
| data105 = {{#if:{{{userboxes|}}}|
<table style="background: transparent; vertical-align: middle !important; text-align: center; font-size: 95%; color: {{{fontcolor|#000000}}}; margin: auto; border-spacing: 0px; border-collapse: collapse;">
<tr><td>
{{{userboxes|}}}
</td></tr>
</table>
}}
| header106 = {{{custom_header|}}}
| data107 = {{#if:{{{custom_data|}}}|<div style="text-align: left">
{{{custom_data|}}}
</div>}}
| label111 = {{{custom_label1|}}}
| data111 = {{{custom_data1|}}}
| label112 = {{{custom_label2|}}}
| data112 = {{{custom_data2|}}}
| label113 = {{{custom_label3|}}}
| data113 = {{{custom_data3|}}}
| label114 = {{{custom_label4|}}}
| data114 = {{{custom_data4|}}}
| label115 = {{{custom_label5|}}}
| data115 = {{{custom_data5|}}}
| label116 = {{{custom_label6|}}}
| data116 = {{{custom_data6|}}}
| label117 = {{{custom_label7|}}}
| data117 = {{{custom_data7|}}}
| label118 = {{{custom_label8|}}}
| data118 = {{{custom_data8|}}}
| label119 = {{{custom_label9|}}}
| data119 = {{{custom_data9|}}}
}}<noinclude>{{Documentation}}{{En-WP attribution notice|Template:Infobox Wikipedia user}}</noinclude>
5c833d57c9e7f404beac918c3b0cae721506bd7f
Module:Documentation/styles.css
828
351
597
2023-01-16T23:40:04Z
m>Pppery
0
text
text/plain
.documentation,
.documentation-metadata {
border: 1px solid #a2a9b1;
background-color: #ecfcf4;
clear: both;
}
.documentation {
margin: 1em 0 0 0;
padding: 1em;
}
.documentation-metadata {
margin: 0.2em 0; /* same margin left-right as .documentation */
font-style: italic;
padding: 0.4em 1em; /* same padding left-right as .documentation */
}
.documentation-startbox {
padding-bottom: 3px;
border-bottom: 1px solid #aaa;
margin-bottom: 1ex;
}
.documentation-heading {
font-weight: bold;
font-size: 125%;
}
.documentation-clear { /* Don't want things to stick out where they shouldn't. */
clear: both;
}
.documentation-toolbar {
font-style: normal;
font-size: 85%;
}
/* [[Category:Template stylesheets]] */
5fb984fe8632dc068db16853a824c9f3d5175dd9
598
597
2023-11-02T21:46:36Z
Gingerdanger
2
1 revision imported
text
text/plain
.documentation,
.documentation-metadata {
border: 1px solid #a2a9b1;
background-color: #ecfcf4;
clear: both;
}
.documentation {
margin: 1em 0 0 0;
padding: 1em;
}
.documentation-metadata {
margin: 0.2em 0; /* same margin left-right as .documentation */
font-style: italic;
padding: 0.4em 1em; /* same padding left-right as .documentation */
}
.documentation-startbox {
padding-bottom: 3px;
border-bottom: 1px solid #aaa;
margin-bottom: 1ex;
}
.documentation-heading {
font-weight: bold;
font-size: 125%;
}
.documentation-clear { /* Don't want things to stick out where they shouldn't. */
clear: both;
}
.documentation-toolbar {
font-style: normal;
font-size: 85%;
}
/* [[Category:Template stylesheets]] */
5fb984fe8632dc068db16853a824c9f3d5175dd9
Template:If empty
10
366
629
2023-03-21T04:15:21Z
m>Pppery
0
Rv
wikitext
text/x-wiki
<includeonly>{{{{{|safesubst:}}}#if:{{{1|}}}
| {{{1}}}
| {{{{{|safesubst:}}}#if:{{{2|}}}
| {{{2}}}
| {{{{{|safesubst:}}}#if:{{{3|}}}
| {{{3}}}
| {{{{{|safesubst:}}}#if:{{{4|}}}
| {{{4}}}
| {{{{{|safesubst:}}}#if:{{{5|}}}
| {{{5}}}
| {{{{{|safesubst:}}}#if:{{{6|}}}
| {{{6}}}
| {{{{{|safesubst:}}}#if:{{{7|}}}
| {{{7}}}
| {{{{{|safesubst:}}}#if:{{{8|}}}
| {{{8}}}
| {{{{{|safesubst:}}}#if:{{{9|}}}
| {{{9}}}
}}
}}
}}
}}
}}
}}
}}
}}
}}</includeonly><noinclude>
{{Documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
eeda2c13231e9a8b44d480e8c429d73652575009
630
629
2023-11-02T21:46:46Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
<includeonly>{{{{{|safesubst:}}}#if:{{{1|}}}
| {{{1}}}
| {{{{{|safesubst:}}}#if:{{{2|}}}
| {{{2}}}
| {{{{{|safesubst:}}}#if:{{{3|}}}
| {{{3}}}
| {{{{{|safesubst:}}}#if:{{{4|}}}
| {{{4}}}
| {{{{{|safesubst:}}}#if:{{{5|}}}
| {{{5}}}
| {{{{{|safesubst:}}}#if:{{{6|}}}
| {{{6}}}
| {{{{{|safesubst:}}}#if:{{{7|}}}
| {{{7}}}
| {{{{{|safesubst:}}}#if:{{{8|}}}
| {{{8}}}
| {{{{{|safesubst:}}}#if:{{{9|}}}
| {{{9}}}
}}
}}
}}
}}
}}
}}
}}
}}
}}</includeonly><noinclude>
{{Documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
eeda2c13231e9a8b44d480e8c429d73652575009
Template:Infobox character/doc
10
346
585
2023-03-21T04:33:54Z
m>Pppery
0
wikitext
text/x-wiki
{{Documentation subpage}}
'''Infobox character''' is used to create an infobox for a fictional character of any type.
== Usage ==
The blank form immediately below shows the most commonly used fields, and complete instructions are listed further down the page.
{{Infobox character
| name = {{{name}}}
| series = {{{series}}}
| image = {{{image}}}
| alt = {{{alt}}}
| caption = {{{caption}}}
| first_major = {{{first_major}}}
| first_minor = {{{first_minor}}}
| first_date = {{{first_date}}}
| last_major = {{{last_major}}}
| last_minor = {{{last_minor}}}
| last_date = {{{last_date}}}
| creator = {{{creator}}}
| based_on = {{{based_on}}}
| adapted_by = {{{adapted_by}}}
| designer = {{{designer}}}
| portrayer = {{{portrayer}}}
| voice = {{{voice}}}
| motion_actor = {{{motion_actor}}}
| full_name = {{{full_name}}}
| nickname = {{{nickname}}}
| alias = {{{alias}}}
| species = {{{species}}}
| gender = {{{gender}}}
| title = {{{title}}}
| occupation = {{{occupation}}}
| affiliation = {{{affiliation}}}
| fighting_style = {{{fighting_style}}}
| weapon = {{{weapon}}}
| family = {{{family}}}
| spouse = {{{spouse}}}
| significant_other = {{{significant_other}}}
| children = {{{children}}}
| relatives = {{{relatives}}}
| religion = {{{religion}}}
| origin = {{{origin}}}
| nationality = {{{nationality}}}
}}
<syntaxhighlight lang="html" style="overflow:auto">{{Infobox character
| color = <!-- headers background color; the foreground color is automatically computed -->
| name =
| series = <!-- or |franchise=; use without the italic on the outside -->
| image =
| alt =
| caption =
| first_major = <!-- per [[MOS:MAJORWORK]] - major works include TV series, films, books, albums and games -->
| first_minor = <!-- or |first_issue=; Per [[MOS:MINORWORK]] - minor works include TV episodes, chapters, songs and game missions -->
| first_date =
| first = <!-- Use instead of first_major= etc. when custom or complex formatting is needed. -->
| last_major =
| last_minor = <!-- or |last_issue= -->
| last_date =
| last = <!-- Use instead of last_major= etc. when custom or complex formatting is needed. -->
| creator = <!-- only the credited creators; use adapted_by= for adaptations -->
| based_on = <!-- if not an original creation, use {{based on|character|author}} -->
| adapted_by = <!-- for character adaption articles -->
| designer =
| portrayer =
| voice =
| motion_actor =
| full_name =
| nickname = <!-- or |nicknames= -->
| alias = <!-- or |aliases= -->
| species = <!-- or |race=; for non-humans only -->
| gender = <!-- if not obvious -->
| title =
| occupation = <!-- or |position= or |class= -->
| affiliation = <!-- or |alignment= -->
| fighting_style =
| weapon =
| family =
| spouse = <!-- or |spouses= -->
| significant_other = <!-- or |significant_others= -->
| children =
| relatives =
| religion =
| origin = <!-- or |home= -->
| nationality =
}}</syntaxhighlight>
== Parameters ==
All parameters are optional.
{| class="wikitable"
|-
! scope="col" | Parameter
! scope="col" | Notes
|-
! scope="row" | color
| Background color for header bars (default = #DEDEE2). The text color is automatically determined. Must meet AAA compliance standards outlines on [[WP:COLOR]].
|-
! scope="row" | name
| Character name to display in top header (default = PAGENAME).
|-
! scope="row" | series
| Name of the series in which the character appears.
|-
! scope="row" | franchise
| Name of the fictional world or story in which the character appears. Does not italicize title.
|-
! scope="row" | multiple
| Set to yes if the infobox describes more than one character.
|-
! scope="row" | image
| Image of the character. "File:" and wikilinking is not required. i.e. use {{para|image|Example.png}}.
|-
! scope="row" | image_upright
| The image size defaults to frameless (220px). The size should not be set to a value that would result in an image width greater than 270px.
|-
! scope="row" | alt
| Alt text for image
|-
! scope="row" | caption
| A caption explaining the image.
|-
! scope="row" | first_major
| The title of the major work the fictional element first appeared in. Major works include TV series, films, books, albums and games.
|-
! scope="row" | first_minor
| The title of the minor work the fictional element first appeared in. Minor works include TV episodes, chapters, songs and game missions.
|-
! scope="row" | first_issue
| The number of the comic book issue the fictional element first appeared in.
|-
! scope="row" | first_date
| The date of the publication/release of the minor work where the fictional element first appeared in.
|-
! scope="row" | last_major
| The title of the major work the fictional element last appeared in. Major works include TV series, films, books, albums and games.
|-
! scope="row" | last_minor
| The title of the minor work the fictional element last appeared in. Minor works include TV episodes, chapters, songs and game missions.
|-
! scope="row" | last_issue
| The number of the comic book issue the fictional element last appeared in.
|-
! scope="row" | last_date
| The date of the publication/release of the minor work where the fictional element last appeared in.
|-
! scope="row" | first
| First appearance of the character.
|-
! scope="row" | firstgame
| First appearance in a game of the character.
|-
! scope="row" | last
| Last appearance of the character.
|-
! scope="row" | creator
| Name of the individuals who are credited with the creation of the character.
|-
! scope="row" | based_on
| Name of the original character the adaptation is based on. Use this field in conjunction with {{para|adapted_by}}.
|-
! scope="row" | adapted_by
| Name of the individuals who adapted the character into a new medium. Use this field if the character in a medium is based on a character from a different medium, such as a character on television based on a comic book character.
|-
! scope="row" | designer
| Name of the individuals who designed the character.
|-
! scope="row" | portrayer
| Name of the individuals who portrayed the character.
|-
! scope="row" | voice
| Name of the individuals who voiced the character. Should be omitted if the same as "portrayer".
|-
! scope="row" | motion_actor
| Name of the individuals who portrayed the character in motion capture.
|-
! scope="row" | noinfo
| Disable the first "In-universe information" header.
|-
! scope="row" | info-hdr
| Text for display in second header (default = Information).
|-
! scope="row" | full_name
| The character's full name.
|-
! scope="row" | nickname/nicknames
| Any nicknames used by the character.
|-
! scope="row" | alias/aliases
| Any aliases used by the character.
|-
! scope="row" | species/race
| The species or race of the character. Use for non-human characters only.
|-
! scope="row" | gender
| The gender of the character. Use only if not obvious.
|-
! scope="row" | title
| Titles the character was known by.
|-
! scope="row" | occupation/position
| The character's job or role.
|-
! scope="row" | class
| The character class for RPG characters.
|-
! scope="row" | affiliation
| The groups or teams the character belongs to.
|-
! scope="row" | alignment
| The character's Dungeons & Dragons alignment.
|-
! scope="row" | fighting_style
| The primary fighting styles used by the character.
|-
! scope="row" | weapon
| The types of weapons the character uses.
|-
! scope="row" | family
| The character's family members.
|-
! scope="row" | spouse/spouses
| The character's spouses.
|-
! scope="row" | significant_other/significant_others
| The character's significant others.
|-
! scope="row" | children
| The characters's children.
|-
! scope="row" | relatives
| The characters's relatives.
|-
! scope="row" | religion
| The character's religion.
|-
! scope="row" | origin/home
| The character's place of origin.
|-
! scope="row" | nationality
| The character's nationality.
|-
! scope="row" | extra-hdr
| Text for display in third header (default = No third header).
|-
! scope="row" | lbl#
| Label to display in left column where "#" is 1-5, 21-25, or 31-35 for custom fields under the 1st, 2nd, or 3rd headers respectively.
|-
! scope="row" | data#
| Text to display in the right column corresponding to the appropriate "lbl#".
|}
===TemplateData===
<templatedata>
{
"description": "Creates an infobox for a fictional character of any type.",
"params": {
"color": {
"label": "Color",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Background color for header bars (default = #DEDEE2). The text color is automatically computed. Must meet AAA compliance standards outlines on [[WP:COLOR]].",
"aliases": [
"colour"
]
},
"name": {
"label": "Name",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Character name to display in top header (default = PAGENAME)."
},
"series": {
"label": "Series",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the series in which the character appears."
},
"franchise": {
"label": "Franchise",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the fictional world or story in which the character appears. Does not italicize title."
},
"multiple": {
"label": "Multiple",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Set to yes if the infobox describes more than one character."
},
"image": {
"label": "Image",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Image of the character. \"File:\" and wikilinking is not required. i.e. use {{para|image|Example.png}}."
},
"image_upright": {
"label": "Image upright",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The image size defaults to frameless (220px). The size should not be set to a value that would result in an image width greater than 270px."
},
"alt": {
"label": "Alt",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Alt text for image per [[WP:MOSALT]]."
},
"caption": {
"label": "Caption",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "A caption explaining the image."
},
"first_major": {
"label": "First appearance major",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The title of the major work the fictional element first appeared in. Major works include TV series, films, books, albums and games."
},
"first_minor": {
"label": "First appearance minor",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The title of the minor work the fictional element first appeared in. Minor works include TV episodes, chapters, songs and game missions."
},
"first_issue": {
"label": "First appearance issue",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The number of the comic book issue the fictional element first appeared in."
},
"first_date": {
"label": "First appearance date",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The date of the publication/release of the minor work where the fictional element first appeared in."
},
"last_major": {
"label": "Last appearance major",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The title of the major work the fictional element last appeared in. Major works include TV series, films, books, albums and games."
},
"last_minor": {
"label": "Last appearance minor",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The title of the minor work the fictional element last appeared in. Minor works include TV episodes, chapters, songs and game missions."
},
"last_issue": {
"label": "Last appearance issue",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The number of the comic book issue the fictional element last appeared in."
},
"last_date": {
"label": "Last appearance date",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The date of the publication/release of the minor work where the fictional element last appeared in."
},
"first": {
"label": "First appearance",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "First appearance of the character."
},
"firstgame": {
"label": "First game",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "First appearance in a game of the character."
},
"last": {
"label": "Last appearance",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Last appearance of the character."
},
"creator": {
"label": "Creator",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the individuals who are credited with the creation of the character."
},
"based_on": {
"label": "Based on",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the original character the adaptation is based on. Use {{based on}} to add the title of original character and the names of the original creators. Use this field in conjunction with {{para|adapted_by}}."
},
"adapted_by": {
"label": "Adapted by",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the individuals who adapted the character into a new medium. Use this field if the character in a medium is based on a character from a different medium, such as a character on television based on a comic book character."
},
"designer": {
"label": "Designer",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the individuals who designed the character."
},
"portrayer": {
"label": "Portrayer",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the individuals who portrayed the character."
},
"voice": {
"label": "Voice actor",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the individuals who voiced the character (if different from portrayer or there is no portrayer)"
},
"motion_actor": {
"label": "Motion actor",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the individuals who portrayed the character in motion capture."
},
"lbl1": {
"label": "Label 1",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Label to display in left column for custom fields under the 1st header."
},
"data1": {
"label": "Data 1",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Text to display in the right column corresponding to lbl1."
},
"lbl2": {
"label": "Label 2",
"inherits": "lbl1"
},
"data2": {
"label": "Data 2",
"description": "Text to display in the right column corresponding to lbl2.",
"inherits": "data1"
},
"lbl3": {
"label": "Label 3",
"inherits": "lbl1"
},
"data3": {
"label": "Data 3",
"description": "Text to display in the right column corresponding to lbl3.",
"inherits": "data1"
},
"lbl4": {
"label": "Label 4",
"inherits": "lbl1"
},
"data4": {
"label": "Data 4",
"description": "Text to display in the right column corresponding to lbl4.",
"inherits": "data1"
},
"lbl5": {
"label": "Label 5",
"inherits": "lbl1"
},
"data5": {
"label": "Data 5",
"description": "Text to display in the right column corresponding to lbl5.",
"inherits": "data1"
},
"noinfo": {
"label": "Disable second header",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Disable the first \"In-universe information\" header."
},
"info-hdr": {
"label": "Second header text",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Text for display in second header (default = Information)."
},
"full_name": {
"label": "Full name",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's full name."
},
"nickname": {
"label": "Nickname",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "A nickname used by the character. If there is more than one nickname, use {{para|nicknames}}."
},
"nicknames": {
"label": "Nicknames",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Any nicknames used by the character. If there is only one nickname, use {{para|nickname}}."
},
"alias": {
"label": "Alias",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "An alias used by the character. If there is more than one alias, use {{para|aliases}}."
},
"aliases": {
"label": "Alias",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Any aliases used by the character. If there is only one alias, use {{para|alias}}."
},
"species": {
"label": "Species",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The species of the character. Use for non-human characters only."
},
"race": {
"label": "Race",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The race of the character. Use for non-human characters only."
},
"gender": {
"label": "Gender",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The gender of the character. Use only if not obvious."
},
"title": {
"label": "Title",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Titles the character was known by."
},
"occupation": {
"label": "Occupation",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's job or role."
},
"position": {
"label": "Position",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's job or role."
},
"class": {
"label": "Class",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character class for RPG characters."
},
"affiliation": {
"label": "Affiliation",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The groups or teams the character belongs to."
},
"alignment": {
"label": "Alignment",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's Dungeons & Dragons alignment."
},
"fighting_style": {
"label": "Fighting style",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The primary fighting styles used by the character."
},
"weapon": {
"label": "Weapon",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The types of weapons the character uses."
},
"family": {
"label": "Family",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's family members."
},
"spouse": {
"label": "Spouse",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's spouses."
},
"spouses": {
"label": "Spouses",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's spouses."
},
"significant_other": {
"label": "Significant other",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's significant others. If there is more than one significant_other, use {{para|significant_others}}."
},
"significant_others": {
"label": "Significant others",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's significant others. If there is only one significant_other, use {{para|significant_other}}."
},
"children": {
"label": "Children",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The characters's children"
},
"relatives": {
"label": "Relatives",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The characters's relatives"
},
"religion": {
"label": "Religion",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's religion"
},
"origin": {
"label": "Origin",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's place of origin."
},
"home": {
"label": "Home",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's place of origin."
},
"nationality": {
"label": "Nationality",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's nationality."
},
"lbl21": {
"label": "Label 21",
"description": "Label to display in left column for custom fields under the 2nd header.",
"inherits": "lbl1"
},
"data21": {
"label": "Data 21",
"description": "Text to display in the right column corresponding to lbl21.",
"inherits": "data1"
},
"lbl22": {
"label": "Label 22",
"inherits": "lbl21"
},
"data22": {
"label": "Data 22",
"description": "Text to display in the right column corresponding to lbl22.",
"inherits": "data1"
},
"lbl23": {
"label": "Label 23",
"inherits": "lbl21"
},
"data23": {
"label": "Data 23",
"description": "Text to display in the right column corresponding to lbl23.",
"inherits": "data1"
},
"lbl24": {
"label": "Label 24",
"inherits": "lbl21"
},
"data24": {
"label": "Data 24",
"description": "Text to display in the right column corresponding to lbl24.",
"inherits": "data1"
},
"lbl25": {
"label": "Label 25",
"inherits": "lbl21"
},
"data25": {
"label": "Data 25",
"description": "Text to display in the right column corresponding to lbl25.",
"inherits": "data1"
},
"extra-hdr": {
"label": "Third header text",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Text for display in third header (default = No third header)."
},
"lbl31": {
"label": "Label 31",
"description": "Label to display in left column for custom fields under the 3rd header.",
"inherits": "lbl22"
},
"data31": {
"label": "Data 31",
"description": "Text to display in the right column corresponding to lbl31.",
"inherits": "data1"
},
"lbl32": {
"label": "Label 32",
"inherits": "lbl31"
},
"data32": {
"label": "Data 32",
"description": "Text to display in the right column corresponding to lbl32.",
"inherits": "data1"
},
"lbl33": {
"label": "Label 33",
"inherits": "lbl31"
},
"data33": {
"label": "Data 33",
"description": "Text to display in the right column corresponding to lbl33.",
"inherits": "data1"
},
"lbl34": {
"label": "Label 34",
"inherits": "lbl31"
},
"data34": {
"label": "Data 34",
"description": "Text to display in the right column corresponding to lbl34.",
"inherits": "data1"
},
"lbl35": {
"label": "Label 35",
"inherits": "lbl31"
},
"data35": {
"label": "Data 35",
"description": "Text to display in the right column corresponding to lbl35.",
"inherits": "data1"
}
},
"format": "block"
}
</templatedata>
=== All parameters (not for general use) ===
<pre>{{Infobox character
| color = <!-- headers background colour; the foreground colour is automatically computed -->
| name =
| series = <!-- or |franchise=; use without the italic on the outside -->
| multiple =
| image =
| image_upright =
| alt =
| caption =
| first_major = <!-- per [[MOS:MAJORWORK]] - major works include TV series, films, books, albums and games -->
| first_minor = <!-- or |first_issue=; Per [[MOS:MINORWORK]] - minor works include TV episodes, chapters, songs and game missions -->
| first_date =
| last_major =
| last_minor = <!-- or |last_issue= -->
| last_date =
| first =
| firstgame =
| last =
| creator = <!-- only the credited creators; use adapted_by= for adaptations -->
| based_on = <!-- if not an original creation, use {{based on|character|author}} -->
| adapted_by = <!-- for character adaption articles -->
| designer =
| portrayer =
| voice =
| motion_actor =
| lbl1 =
| data1 =
| lbl2 =
| data2 =
| lbl3 =
| data3 =
| lbl4 =
| data4 =
| lbl5 =
| data5 =
| noinfo =
| info-hdr =
| full_name =
| nickname = <!-- or |nicknames= -->
| alias = <!-- or |aliases= -->
| species = <!-- or |race=; for non-humans only -->
| gender = <!-- if not obvious -->
| title =
| occupation = <!-- or |position= or |class= -->
| affiliation = <!-- or |alignment= -->
| fighting_style =
| weapon =
| family =
| spouse = <!-- or |spouses= -->
| significant_other = <!-- or |significant_others= -->
| children =
| relatives =
| religion =
| origin = <!-- or |home= -->
| nationality =
| lbl21 =
| data21 =
| lbl22 =
| data22 =
| lbl23 =
| data23 =
| lbl24 =
| data24 =
| lbl25 =
| data25 =
| extra-hdr =
| lbl31 =
| data31 =
| lbl32 =
| data32 =
| lbl33 =
| data33 =
| lbl34 =
| data34 =
| lbl35 =
| data35 =
}}</pre>
== Example ==
{{Infobox character
| name = John Doe
| series = [[Criminal Minds]]
| image =
| caption =
| first_major = Criminal Minds
| first_minor = Pilot
| first_date = 2005
| last_major = Criminal Minds
| last_minor = Last One
| last_date = 2018
| creator = [[Agnes Nixon]]
| portrayer = [[Soupy Sales]]
| nickname = Doeboy
| alias = Jack Dew
| gender = Male
| title = Detective
| occupation = Law enforcement
| family = Doe
| spouse = Jane Doe
| significant_other =
| children = John Doe, Jr.
| relatives = Phil Doe (father), Nancy Doe (mother)
| religion = [[Christianity|Christian]]
| nationality = American
}}
<syntaxhighlight lang="moin">
{{Infobox character
| name = John Doe
| series = [[Criminal Minds]]
| image =
| caption =
| first_major = Criminal Minds
| first_minor = Pilot
| first_date = 2005
| last_major = Criminal Minds
| last_minor = Last One
| last_date = 2018
| creator = [[Agnes Nixon]]
| portrayer = [[Soupy Sales]]
| nickname = Doeboy
| alias = Jack Dew
| gender = Male
| title = Detective
| occupation = Law enforcement
| family = Doe
| spouse = Jane Doe
| significant_other =
| children = John Doe, Jr.
| relatives = Phil Doe (father), Nancy Doe (mother)
| religion = [[Christianity|Christian]]
| nationality = American
}}
</syntaxhighlight>
<includeonly>
[[Category:Templates]]
</includeonly>
c3b5673c7b9ea096939919c0cf7da9d3440d78e7
586
585
2023-11-02T21:46:32Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
{{Documentation subpage}}
'''Infobox character''' is used to create an infobox for a fictional character of any type.
== Usage ==
The blank form immediately below shows the most commonly used fields, and complete instructions are listed further down the page.
{{Infobox character
| name = {{{name}}}
| series = {{{series}}}
| image = {{{image}}}
| alt = {{{alt}}}
| caption = {{{caption}}}
| first_major = {{{first_major}}}
| first_minor = {{{first_minor}}}
| first_date = {{{first_date}}}
| last_major = {{{last_major}}}
| last_minor = {{{last_minor}}}
| last_date = {{{last_date}}}
| creator = {{{creator}}}
| based_on = {{{based_on}}}
| adapted_by = {{{adapted_by}}}
| designer = {{{designer}}}
| portrayer = {{{portrayer}}}
| voice = {{{voice}}}
| motion_actor = {{{motion_actor}}}
| full_name = {{{full_name}}}
| nickname = {{{nickname}}}
| alias = {{{alias}}}
| species = {{{species}}}
| gender = {{{gender}}}
| title = {{{title}}}
| occupation = {{{occupation}}}
| affiliation = {{{affiliation}}}
| fighting_style = {{{fighting_style}}}
| weapon = {{{weapon}}}
| family = {{{family}}}
| spouse = {{{spouse}}}
| significant_other = {{{significant_other}}}
| children = {{{children}}}
| relatives = {{{relatives}}}
| religion = {{{religion}}}
| origin = {{{origin}}}
| nationality = {{{nationality}}}
}}
<syntaxhighlight lang="html" style="overflow:auto">{{Infobox character
| color = <!-- headers background color; the foreground color is automatically computed -->
| name =
| series = <!-- or |franchise=; use without the italic on the outside -->
| image =
| alt =
| caption =
| first_major = <!-- per [[MOS:MAJORWORK]] - major works include TV series, films, books, albums and games -->
| first_minor = <!-- or |first_issue=; Per [[MOS:MINORWORK]] - minor works include TV episodes, chapters, songs and game missions -->
| first_date =
| first = <!-- Use instead of first_major= etc. when custom or complex formatting is needed. -->
| last_major =
| last_minor = <!-- or |last_issue= -->
| last_date =
| last = <!-- Use instead of last_major= etc. when custom or complex formatting is needed. -->
| creator = <!-- only the credited creators; use adapted_by= for adaptations -->
| based_on = <!-- if not an original creation, use {{based on|character|author}} -->
| adapted_by = <!-- for character adaption articles -->
| designer =
| portrayer =
| voice =
| motion_actor =
| full_name =
| nickname = <!-- or |nicknames= -->
| alias = <!-- or |aliases= -->
| species = <!-- or |race=; for non-humans only -->
| gender = <!-- if not obvious -->
| title =
| occupation = <!-- or |position= or |class= -->
| affiliation = <!-- or |alignment= -->
| fighting_style =
| weapon =
| family =
| spouse = <!-- or |spouses= -->
| significant_other = <!-- or |significant_others= -->
| children =
| relatives =
| religion =
| origin = <!-- or |home= -->
| nationality =
}}</syntaxhighlight>
== Parameters ==
All parameters are optional.
{| class="wikitable"
|-
! scope="col" | Parameter
! scope="col" | Notes
|-
! scope="row" | color
| Background color for header bars (default = #DEDEE2). The text color is automatically determined. Must meet AAA compliance standards outlines on [[WP:COLOR]].
|-
! scope="row" | name
| Character name to display in top header (default = PAGENAME).
|-
! scope="row" | series
| Name of the series in which the character appears.
|-
! scope="row" | franchise
| Name of the fictional world or story in which the character appears. Does not italicize title.
|-
! scope="row" | multiple
| Set to yes if the infobox describes more than one character.
|-
! scope="row" | image
| Image of the character. "File:" and wikilinking is not required. i.e. use {{para|image|Example.png}}.
|-
! scope="row" | image_upright
| The image size defaults to frameless (220px). The size should not be set to a value that would result in an image width greater than 270px.
|-
! scope="row" | alt
| Alt text for image
|-
! scope="row" | caption
| A caption explaining the image.
|-
! scope="row" | first_major
| The title of the major work the fictional element first appeared in. Major works include TV series, films, books, albums and games.
|-
! scope="row" | first_minor
| The title of the minor work the fictional element first appeared in. Minor works include TV episodes, chapters, songs and game missions.
|-
! scope="row" | first_issue
| The number of the comic book issue the fictional element first appeared in.
|-
! scope="row" | first_date
| The date of the publication/release of the minor work where the fictional element first appeared in.
|-
! scope="row" | last_major
| The title of the major work the fictional element last appeared in. Major works include TV series, films, books, albums and games.
|-
! scope="row" | last_minor
| The title of the minor work the fictional element last appeared in. Minor works include TV episodes, chapters, songs and game missions.
|-
! scope="row" | last_issue
| The number of the comic book issue the fictional element last appeared in.
|-
! scope="row" | last_date
| The date of the publication/release of the minor work where the fictional element last appeared in.
|-
! scope="row" | first
| First appearance of the character.
|-
! scope="row" | firstgame
| First appearance in a game of the character.
|-
! scope="row" | last
| Last appearance of the character.
|-
! scope="row" | creator
| Name of the individuals who are credited with the creation of the character.
|-
! scope="row" | based_on
| Name of the original character the adaptation is based on. Use this field in conjunction with {{para|adapted_by}}.
|-
! scope="row" | adapted_by
| Name of the individuals who adapted the character into a new medium. Use this field if the character in a medium is based on a character from a different medium, such as a character on television based on a comic book character.
|-
! scope="row" | designer
| Name of the individuals who designed the character.
|-
! scope="row" | portrayer
| Name of the individuals who portrayed the character.
|-
! scope="row" | voice
| Name of the individuals who voiced the character. Should be omitted if the same as "portrayer".
|-
! scope="row" | motion_actor
| Name of the individuals who portrayed the character in motion capture.
|-
! scope="row" | noinfo
| Disable the first "In-universe information" header.
|-
! scope="row" | info-hdr
| Text for display in second header (default = Information).
|-
! scope="row" | full_name
| The character's full name.
|-
! scope="row" | nickname/nicknames
| Any nicknames used by the character.
|-
! scope="row" | alias/aliases
| Any aliases used by the character.
|-
! scope="row" | species/race
| The species or race of the character. Use for non-human characters only.
|-
! scope="row" | gender
| The gender of the character. Use only if not obvious.
|-
! scope="row" | title
| Titles the character was known by.
|-
! scope="row" | occupation/position
| The character's job or role.
|-
! scope="row" | class
| The character class for RPG characters.
|-
! scope="row" | affiliation
| The groups or teams the character belongs to.
|-
! scope="row" | alignment
| The character's Dungeons & Dragons alignment.
|-
! scope="row" | fighting_style
| The primary fighting styles used by the character.
|-
! scope="row" | weapon
| The types of weapons the character uses.
|-
! scope="row" | family
| The character's family members.
|-
! scope="row" | spouse/spouses
| The character's spouses.
|-
! scope="row" | significant_other/significant_others
| The character's significant others.
|-
! scope="row" | children
| The characters's children.
|-
! scope="row" | relatives
| The characters's relatives.
|-
! scope="row" | religion
| The character's religion.
|-
! scope="row" | origin/home
| The character's place of origin.
|-
! scope="row" | nationality
| The character's nationality.
|-
! scope="row" | extra-hdr
| Text for display in third header (default = No third header).
|-
! scope="row" | lbl#
| Label to display in left column where "#" is 1-5, 21-25, or 31-35 for custom fields under the 1st, 2nd, or 3rd headers respectively.
|-
! scope="row" | data#
| Text to display in the right column corresponding to the appropriate "lbl#".
|}
===TemplateData===
<templatedata>
{
"description": "Creates an infobox for a fictional character of any type.",
"params": {
"color": {
"label": "Color",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Background color for header bars (default = #DEDEE2). The text color is automatically computed. Must meet AAA compliance standards outlines on [[WP:COLOR]].",
"aliases": [
"colour"
]
},
"name": {
"label": "Name",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Character name to display in top header (default = PAGENAME)."
},
"series": {
"label": "Series",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the series in which the character appears."
},
"franchise": {
"label": "Franchise",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the fictional world or story in which the character appears. Does not italicize title."
},
"multiple": {
"label": "Multiple",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Set to yes if the infobox describes more than one character."
},
"image": {
"label": "Image",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Image of the character. \"File:\" and wikilinking is not required. i.e. use {{para|image|Example.png}}."
},
"image_upright": {
"label": "Image upright",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The image size defaults to frameless (220px). The size should not be set to a value that would result in an image width greater than 270px."
},
"alt": {
"label": "Alt",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Alt text for image per [[WP:MOSALT]]."
},
"caption": {
"label": "Caption",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "A caption explaining the image."
},
"first_major": {
"label": "First appearance major",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The title of the major work the fictional element first appeared in. Major works include TV series, films, books, albums and games."
},
"first_minor": {
"label": "First appearance minor",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The title of the minor work the fictional element first appeared in. Minor works include TV episodes, chapters, songs and game missions."
},
"first_issue": {
"label": "First appearance issue",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The number of the comic book issue the fictional element first appeared in."
},
"first_date": {
"label": "First appearance date",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The date of the publication/release of the minor work where the fictional element first appeared in."
},
"last_major": {
"label": "Last appearance major",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The title of the major work the fictional element last appeared in. Major works include TV series, films, books, albums and games."
},
"last_minor": {
"label": "Last appearance minor",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The title of the minor work the fictional element last appeared in. Minor works include TV episodes, chapters, songs and game missions."
},
"last_issue": {
"label": "Last appearance issue",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The number of the comic book issue the fictional element last appeared in."
},
"last_date": {
"label": "Last appearance date",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The date of the publication/release of the minor work where the fictional element last appeared in."
},
"first": {
"label": "First appearance",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "First appearance of the character."
},
"firstgame": {
"label": "First game",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "First appearance in a game of the character."
},
"last": {
"label": "Last appearance",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Last appearance of the character."
},
"creator": {
"label": "Creator",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the individuals who are credited with the creation of the character."
},
"based_on": {
"label": "Based on",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the original character the adaptation is based on. Use {{based on}} to add the title of original character and the names of the original creators. Use this field in conjunction with {{para|adapted_by}}."
},
"adapted_by": {
"label": "Adapted by",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the individuals who adapted the character into a new medium. Use this field if the character in a medium is based on a character from a different medium, such as a character on television based on a comic book character."
},
"designer": {
"label": "Designer",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the individuals who designed the character."
},
"portrayer": {
"label": "Portrayer",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the individuals who portrayed the character."
},
"voice": {
"label": "Voice actor",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the individuals who voiced the character (if different from portrayer or there is no portrayer)"
},
"motion_actor": {
"label": "Motion actor",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Name of the individuals who portrayed the character in motion capture."
},
"lbl1": {
"label": "Label 1",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Label to display in left column for custom fields under the 1st header."
},
"data1": {
"label": "Data 1",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Text to display in the right column corresponding to lbl1."
},
"lbl2": {
"label": "Label 2",
"inherits": "lbl1"
},
"data2": {
"label": "Data 2",
"description": "Text to display in the right column corresponding to lbl2.",
"inherits": "data1"
},
"lbl3": {
"label": "Label 3",
"inherits": "lbl1"
},
"data3": {
"label": "Data 3",
"description": "Text to display in the right column corresponding to lbl3.",
"inherits": "data1"
},
"lbl4": {
"label": "Label 4",
"inherits": "lbl1"
},
"data4": {
"label": "Data 4",
"description": "Text to display in the right column corresponding to lbl4.",
"inherits": "data1"
},
"lbl5": {
"label": "Label 5",
"inherits": "lbl1"
},
"data5": {
"label": "Data 5",
"description": "Text to display in the right column corresponding to lbl5.",
"inherits": "data1"
},
"noinfo": {
"label": "Disable second header",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Disable the first \"In-universe information\" header."
},
"info-hdr": {
"label": "Second header text",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Text for display in second header (default = Information)."
},
"full_name": {
"label": "Full name",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's full name."
},
"nickname": {
"label": "Nickname",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "A nickname used by the character. If there is more than one nickname, use {{para|nicknames}}."
},
"nicknames": {
"label": "Nicknames",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Any nicknames used by the character. If there is only one nickname, use {{para|nickname}}."
},
"alias": {
"label": "Alias",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "An alias used by the character. If there is more than one alias, use {{para|aliases}}."
},
"aliases": {
"label": "Alias",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Any aliases used by the character. If there is only one alias, use {{para|alias}}."
},
"species": {
"label": "Species",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The species of the character. Use for non-human characters only."
},
"race": {
"label": "Race",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The race of the character. Use for non-human characters only."
},
"gender": {
"label": "Gender",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The gender of the character. Use only if not obvious."
},
"title": {
"label": "Title",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Titles the character was known by."
},
"occupation": {
"label": "Occupation",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's job or role."
},
"position": {
"label": "Position",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's job or role."
},
"class": {
"label": "Class",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character class for RPG characters."
},
"affiliation": {
"label": "Affiliation",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The groups or teams the character belongs to."
},
"alignment": {
"label": "Alignment",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's Dungeons & Dragons alignment."
},
"fighting_style": {
"label": "Fighting style",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The primary fighting styles used by the character."
},
"weapon": {
"label": "Weapon",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The types of weapons the character uses."
},
"family": {
"label": "Family",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's family members."
},
"spouse": {
"label": "Spouse",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's spouses."
},
"spouses": {
"label": "Spouses",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's spouses."
},
"significant_other": {
"label": "Significant other",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's significant others. If there is more than one significant_other, use {{para|significant_others}}."
},
"significant_others": {
"label": "Significant others",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's significant others. If there is only one significant_other, use {{para|significant_other}}."
},
"children": {
"label": "Children",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The characters's children"
},
"relatives": {
"label": "Relatives",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The characters's relatives"
},
"religion": {
"label": "Religion",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's religion"
},
"origin": {
"label": "Origin",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's place of origin."
},
"home": {
"label": "Home",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's place of origin."
},
"nationality": {
"label": "Nationality",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "The character's nationality."
},
"lbl21": {
"label": "Label 21",
"description": "Label to display in left column for custom fields under the 2nd header.",
"inherits": "lbl1"
},
"data21": {
"label": "Data 21",
"description": "Text to display in the right column corresponding to lbl21.",
"inherits": "data1"
},
"lbl22": {
"label": "Label 22",
"inherits": "lbl21"
},
"data22": {
"label": "Data 22",
"description": "Text to display in the right column corresponding to lbl22.",
"inherits": "data1"
},
"lbl23": {
"label": "Label 23",
"inherits": "lbl21"
},
"data23": {
"label": "Data 23",
"description": "Text to display in the right column corresponding to lbl23.",
"inherits": "data1"
},
"lbl24": {
"label": "Label 24",
"inherits": "lbl21"
},
"data24": {
"label": "Data 24",
"description": "Text to display in the right column corresponding to lbl24.",
"inherits": "data1"
},
"lbl25": {
"label": "Label 25",
"inherits": "lbl21"
},
"data25": {
"label": "Data 25",
"description": "Text to display in the right column corresponding to lbl25.",
"inherits": "data1"
},
"extra-hdr": {
"label": "Third header text",
"type": "string",
"required": false,
"suggested": false,
"deprecated": false,
"description": "Text for display in third header (default = No third header)."
},
"lbl31": {
"label": "Label 31",
"description": "Label to display in left column for custom fields under the 3rd header.",
"inherits": "lbl22"
},
"data31": {
"label": "Data 31",
"description": "Text to display in the right column corresponding to lbl31.",
"inherits": "data1"
},
"lbl32": {
"label": "Label 32",
"inherits": "lbl31"
},
"data32": {
"label": "Data 32",
"description": "Text to display in the right column corresponding to lbl32.",
"inherits": "data1"
},
"lbl33": {
"label": "Label 33",
"inherits": "lbl31"
},
"data33": {
"label": "Data 33",
"description": "Text to display in the right column corresponding to lbl33.",
"inherits": "data1"
},
"lbl34": {
"label": "Label 34",
"inherits": "lbl31"
},
"data34": {
"label": "Data 34",
"description": "Text to display in the right column corresponding to lbl34.",
"inherits": "data1"
},
"lbl35": {
"label": "Label 35",
"inherits": "lbl31"
},
"data35": {
"label": "Data 35",
"description": "Text to display in the right column corresponding to lbl35.",
"inherits": "data1"
}
},
"format": "block"
}
</templatedata>
=== All parameters (not for general use) ===
<pre>{{Infobox character
| color = <!-- headers background colour; the foreground colour is automatically computed -->
| name =
| series = <!-- or |franchise=; use without the italic on the outside -->
| multiple =
| image =
| image_upright =
| alt =
| caption =
| first_major = <!-- per [[MOS:MAJORWORK]] - major works include TV series, films, books, albums and games -->
| first_minor = <!-- or |first_issue=; Per [[MOS:MINORWORK]] - minor works include TV episodes, chapters, songs and game missions -->
| first_date =
| last_major =
| last_minor = <!-- or |last_issue= -->
| last_date =
| first =
| firstgame =
| last =
| creator = <!-- only the credited creators; use adapted_by= for adaptations -->
| based_on = <!-- if not an original creation, use {{based on|character|author}} -->
| adapted_by = <!-- for character adaption articles -->
| designer =
| portrayer =
| voice =
| motion_actor =
| lbl1 =
| data1 =
| lbl2 =
| data2 =
| lbl3 =
| data3 =
| lbl4 =
| data4 =
| lbl5 =
| data5 =
| noinfo =
| info-hdr =
| full_name =
| nickname = <!-- or |nicknames= -->
| alias = <!-- or |aliases= -->
| species = <!-- or |race=; for non-humans only -->
| gender = <!-- if not obvious -->
| title =
| occupation = <!-- or |position= or |class= -->
| affiliation = <!-- or |alignment= -->
| fighting_style =
| weapon =
| family =
| spouse = <!-- or |spouses= -->
| significant_other = <!-- or |significant_others= -->
| children =
| relatives =
| religion =
| origin = <!-- or |home= -->
| nationality =
| lbl21 =
| data21 =
| lbl22 =
| data22 =
| lbl23 =
| data23 =
| lbl24 =
| data24 =
| lbl25 =
| data25 =
| extra-hdr =
| lbl31 =
| data31 =
| lbl32 =
| data32 =
| lbl33 =
| data33 =
| lbl34 =
| data34 =
| lbl35 =
| data35 =
}}</pre>
== Example ==
{{Infobox character
| name = John Doe
| series = [[Criminal Minds]]
| image =
| caption =
| first_major = Criminal Minds
| first_minor = Pilot
| first_date = 2005
| last_major = Criminal Minds
| last_minor = Last One
| last_date = 2018
| creator = [[Agnes Nixon]]
| portrayer = [[Soupy Sales]]
| nickname = Doeboy
| alias = Jack Dew
| gender = Male
| title = Detective
| occupation = Law enforcement
| family = Doe
| spouse = Jane Doe
| significant_other =
| children = John Doe, Jr.
| relatives = Phil Doe (father), Nancy Doe (mother)
| religion = [[Christianity|Christian]]
| nationality = American
}}
<syntaxhighlight lang="moin">
{{Infobox character
| name = John Doe
| series = [[Criminal Minds]]
| image =
| caption =
| first_major = Criminal Minds
| first_minor = Pilot
| first_date = 2005
| last_major = Criminal Minds
| last_minor = Last One
| last_date = 2018
| creator = [[Agnes Nixon]]
| portrayer = [[Soupy Sales]]
| nickname = Doeboy
| alias = Jack Dew
| gender = Male
| title = Detective
| occupation = Law enforcement
| family = Doe
| spouse = Jane Doe
| significant_other =
| children = John Doe, Jr.
| relatives = Phil Doe (father), Nancy Doe (mother)
| religion = [[Christianity|Christian]]
| nationality = American
}}
</syntaxhighlight>
<includeonly>
[[Category:Templates]]
</includeonly>
c3b5673c7b9ea096939919c0cf7da9d3440d78e7
Blossom
0
158
192
191
2023-07-07T02:39:12Z
174.243.249.22
0
wikitext
text/x-wiki
{{Character|name=Blossom|image=Blossom.png|relatives=Unknown|affiliation=The Banes of Thunder|age=Unknown|hometown=Unknown|player=Kate|race=Eladrin|class=Sorcerer|subclass=Wild Magic|str=9 [-1]|dex=16 [+3]|con=15 [+2]|wis=13 [+1]|int=12 [+1]|cha=19 [+4]}}
== Appearance ==
== History ==
=== Before joining the party ===
Much of Blossom's history from before joining the Banes of Thunder is unknown, as she suffers from amnesia. Current theories about her past range from involvement in the Fey Mob to being the avatar of the missing Queen Titania.<br />
== Notable Items ==
* Elven Chain
* Immovable Rod
* Hat of Wizardry
== Additional Companions ==
* Craic
== Trivia ==
[[Category:The Party]]
499a9eb1907ffd29588ee7d4369013233e0dfe50
193
192
2023-07-07T02:39:51Z
174.243.249.22
0
wikitext
text/x-wiki
{{Character|name=Blossom|image=Blossom.png|relatives=Unknown|affiliation=The Banes of Thunder|age=Unknown|hometown=Unknown|player=Kate|race=Eladrin|class=Sorcerer|subclass=Wild Magic|str=9 [-1]|dex=16 [+3]|con=15 [+2]|wis=13 [+1]|int=12 [+1]|cha=19 [+4]}}
== Appearance ==
== History ==
=== Before joining the party ===
Much of Blossom's history from before joining the Banes of Thunder is unknown, as she suffers from amnesia. Current theories about her past range from involvement in the Fey Mob to being the avatar of the missing Queen Titania.<br />
== Notable Items ==
* Elven Chain
* Immovable Rod
* Hat of Wizardry
== Additional Companions ==
* Craic
* Oscar, Fairy Dragon
== Trivia ==
[[Category:The Party]]
08666c471f3c50e50628454fb65318fb95973366
194
193
2023-07-07T02:45:22Z
174.243.249.22
0
wikitext
text/x-wiki
{{Character|name=Blossom|image=Blossom.png|relatives=Unknown|affiliation=The Banes of Thunder|age=Unknown|hometown=Unknown|player=Kate|race=Eladrin|class=Sorcerer|subclass=Wild Magic|str=9 [-1]|dex=16 [+3]|con=15 [+2]|wis=13 [+1]|int=12 [+1]|cha=19 [+4]}}
== Appearance ==
== History ==
=== Before joining the party ===
Much of Blossom's history from before joining the Banes of Thunder is unknown, as she suffers from amnesia. Current theories about her past range from involvement in the Fey Mob to being the avatar of the missing Queen Titania.
During the party's trip to the Fey Wild, she was recognized by a few people from her past, bringing new memories to light.<br />
== Notable Items ==
* Elven Chain
* Immovable Rod
* Hat of Wizardry
== Additional Companions ==
* Craic
* Oscar, Fairy Dragon
== Trivia ==
Blossom gets her name from a series of letters in her possession when she woke up in Neverwinter Forest.
Blossom, as an Eladrin, can usually be found in her Autumn form.
[[Category:The Party]]
689d71efa8eec512d0e475cab3a888458ddf8451
195
194
2023-07-07T02:56:15Z
174.195.194.19
0
wikitext
text/x-wiki
{{Character|name=Blossom|image=Blossom.png|relatives=Unknown|affiliation=The Banes of Thunder|age=Unknown|hometown=Unknown|player=Kate|race=Eladrin|class=Sorcerer|subclass=Wild Magic|str=9 [-1]|dex=16 [+3]|con=15 [+2]|wis=13 [+1]|int=12 [+1]|cha=19 [+4]}}
== Appearance ==
== History ==
=== Before joining the party ===
Much of Blossom's history from before joining the Banes of Thunder is unknown, as she suffers from amnesia. Current theories about her past range from involvement in the Fey Mob to being the avatar of the missing Queen Titania.
During the party's trip to the Fey Wild, she was recognized by a few people from her past, bringing new memories to light.<br />
== Notable Items ==
* Elven Chain
* Immovable Rod
* Hat of Wizardry
* Cursed Fedora
== Additional Companions ==
* Craic
* Oscar, Fairy Dragon
== Trivia ==
Blossom gets her name from a series of letters in her possession when she woke up in Neverwinter Forest.
Blossom, as an Eladrin, can usually be found in her Autumn form.
[[Category:The Party]]
b59508e8864ec7bbc904eafba5a0e9f213b224db
Marcus Blackblood
0
157
186
185
2023-07-07T16:26:04Z
wikia:thunder-ice-and-everything-nice>Wolfjustin
0
wikitext
text/x-wiki
{{Character|name=Marcus Blackblood|image=Marcus.png|aliases=Marcus Foxlow (Legal Name)
PC Richard|relatives=Angelica Foxlow (Wife)
Marcel Blackblood (Father)
Nadia Blackblood (Mother)
Holly Blackblood (Sister)|affiliation=The Banes of Thunder
River Rats|age=17 (currently)
22 (formerly)|hometown=Leilon|player=Justin|race=Zariel Tiefling|class=Warlock|subclass=The Great Old One|str=10 [+0]|dex=16 [+3]|con=14 [+2]|wis=13 [+1]|int=12 [+1]|cha=20 [+5]}}
== Appearance ==
== History ==
== Notable Items ==
* [https://roll20.net/compendium/dnd5e/Gauntlets%20of%20Ogre%20Power#content Gauntlets of Ogre Power]
* Gorthok's Cape of Misty Step
== Additional Companions ==
* Stinky
* Papyrus
* Larka Barka
* Swiftheart (Swifty)
* ThisleHelm
* Shmacles
* SolitConfi
== Trivia ==
[[Category:The Party]]
a4c82b19bf453b5eeb74bbf632902bbc3876a2a1
187
186
2023-07-07T20:50:32Z
wikia:thunder-ice-and-everything-nice>Wolfjustin
0
/* History */
wikitext
text/x-wiki
{{Character|name=Marcus Blackblood|image=Marcus.png|aliases=Marcus Foxlow (Legal Name)
PC Richard|relatives=Angelica Foxlow (Wife)
Marcel Blackblood (Father)
Nadia Blackblood (Mother)
Holly Blackblood (Sister)|affiliation=The Banes of Thunder
River Rats|age=17 (currently)
22 (formerly)|hometown=Leilon|player=Justin|race=Zariel Tiefling|class=Warlock|subclass=The Great Old One|str=10 [+0]|dex=16 [+3]|con=14 [+2]|wis=13 [+1]|int=12 [+1]|cha=20 [+5]}}
== Appearance ==
== History ==
Marcus was born the youngest of the Blackblood family of Leilon, a family of Alchemist and Herbalists who are well regarded in the surrounding region. Legends say that the very first Blackblood was able to concoct an elixir so potent that it brought a noble back from the dead. The Blackblood family wore this tale as a badge of honor and named their family shop The Blackblood Elixir as a homage to the very first Blackblood. This shop has been passed down and run by generations of Blackbloods ever since.
But Marcuse's birth cast a dark shadow over the reputation and multi-generational identity built by the Blackbloods. A myth of sorts had emerged over the years in regards to how the Blackblood Elixir was created, this myth proclaimed that the creator of the potion made a pact with a demon who bestowed them with the knowledge necessary to create it. If this myth were to be believed it would mean that the foundation that their family was built on was lie. This myth would become reality when Marcus was born as Tiefling, which provided evidence of some sort of infernal link in the Blackbloods past.
== Notable Items ==
* [https://roll20.net/compendium/dnd5e/Gauntlets%20of%20Ogre%20Power#content Gauntlets of Ogre Power]
* Gorthok's Cape of Misty Step
== Additional Companions ==
* Stinky
* Papyrus
* Larka Barka
* Swiftheart (Swifty)
* ThisleHelm
* Shmacles
* SolitConfi
== Trivia ==
[[Category:The Party]]
fcbb9aefb21db531a5351586f84980c6ecaf47c2
Helu
0
150
173
172
2023-07-09T01:09:35Z
98.11.214.120
0
wikitext
text/x-wiki
{{Character|aliases=Moss|relatives=Unnamed adoptive mother
Unnamed adoptive father
Ronaan Wisespeaker [adoptive brother]|affiliation=The Banes of Thunder|race=Half-Elf, Half-Orc|class=Barbarian|age=16|hometown=Neverwinter|name=Helu|Player=Bones|player=Bones|subclass=Wild Magic|str=18 [+4]|dex=14 [+2]|con=16 [+3]|wis=15 [+1]|int=12 [+1]|cha=12 [+1]|image=Helu.png}}
== Appearance ==
Helu is a young half-elf, half-orc woman, even at sixteen years old she towers over most people, including her party. She possesses considerable strength <br />
== History ==
<br />
== Notable Items ==
* Hat of Disguise
* Clockwork Amulet
* Bag of Devouring
* Half of the crown of Neverwinter
<br />
== Additional Companions ==
* Wild magic flumph
* Amadán
== Trivia ==
[[Category:The Party]]
7b10cc8b7e9ee93befd28f01061e778ef85ad322
174
173
2023-07-09T05:26:29Z
98.11.214.120
0
wikitext
text/x-wiki
{{Character|aliases=Moss|relatives=Unnamed adoptive mother
Unnamed adoptive father
Ronaan Wisespeaker [adoptive brother]|affiliation=The Banes of Thunder|race=Half-Elf, Half-Orc|class=Barbarian|age=16|hometown=Neverwinter|name=Helu|Player=Bones|player=Bones|subclass=Wild Magic|str=18 [+4]|dex=14 [+2]|con=16 [+3]|wis=15 [+1]|int=12 [+1]|cha=12 [+1]|image=Helu.png}}
== Appearance ==
Helu is a young half-elf, half-orc woman, even at sixteen years old she towers over most people, including her party. She possesses considerable strength and, before Eilif joined the Banes, Helu was the strongest of her party. She currently stands at 6' 9" (six feet, nine inches) tall, she has snow white hair cut into a diagonal bob with bangs and violet eyes, her skin is a warm brown with lighter vitiligo patches across her body.
While the party is back in Neverwinter, Helu has taken steps to protect her identity from Lord Rhadur Stoman, as well as any of his allies; currently her hair is dyed a dark brown with the crown of her head being a lighter shade of almond, she also wears makeup close to her skin tone to hide her vitiligo, especially on her face and neck. Her current attire is mostly dark browns and blacks, practical (and discreet) for a wandering adventurer, she wears a simple, black, three-quarter sleeved shirt, with a leather "bomber"-styled jacket over top, as well as grey finger-less gloves. A muted, warm orange scarf that can double as a cowl if the need arises, as well as a cloak made from the hide of Gorthok the Thunder Boar. Her pants and boots were found second hand, the pants are a dark wash denim with several brown leather straps, some reinforcing the pants, while others hold small pouches. The pants have leather knee pads and are tucked into severely distressed leather boots.
Not shown in the provided picture, her previous hair style were two dutch braids that went down to mid back and had no bangs. The flower crown depicted was made by a previous party member, Fen, as a token of friendship.<br />
== History ==
<br />
== Notable Items ==
* Hat of Disguise
* Clockwork Amulet
* Bag of Devouring
* Half of the crown of Neverwinter
<br />
== Additional Companions ==
* Wild magic flumph
* Amadán
== Trivia ==
[[Category:The Party]]
2a19dcc23887f523f80d544539c97a7a61692b62
175
174
2023-07-09T05:45:42Z
98.11.214.120
0
wikitext
text/x-wiki
{{Character|aliases=Moss|relatives=Unnamed adoptive mother
Unnamed adoptive father
Ronaan Wisespeaker [adoptive brother]|affiliation=The Banes of Thunder|race=Half-Elf, Half-Orc|class=Barbarian|age=16|hometown=Neverwinter|name=Helu|Player=Bones|player=Bones|subclass=Wild Magic|str=18 [+4]|dex=14 [+2]|con=16 [+3]|wis=15 [+1]|int=12 [+1]|cha=12 [+1]|image=Helu.png}}
== Appearance ==
Helu is a young half-elf, half-orc woman, even at sixteen years old she towers over most people, including her party. She possesses considerable strength and, before Eilif joined the Banes, Helu was the strongest of her party. She currently stands at 6' 9" (six feet, nine inches) tall, she has snow white hair cut into a diagonal bob with bangs and violet eyes, her skin is a warm brown with lighter vitiligo patches across her body.
While the party is back in Neverwinter, Helu has taken steps to protect her identity from Lord Rhadur Stoman, as well as any of his allies; currently her hair is dyed a dark brown with the crown of her head being a lighter shade of almond, she also wears makeup close to her skin tone to hide her vitiligo, especially on her face and neck. Her current attire is mostly dark browns and blacks, practical (and discreet) for a wandering adventurer, she wears a simple, black, three-quarter sleeved shirt, with a leather "bomber"-styled jacket over top, as well as grey finger-less gloves. A muted, warm orange scarf that can double as a cowl if the need arises, as well as a cloak made from the hide of Gorthok the Thunder Boar. Her pants and boots were found second hand, the pants are a dark wash denim with several brown leather straps, some reinforcing the pants, while others hold small pouches. The pants have leather knee pads and are tucked into severely distressed leather boots.
Not shown in the provided picture, her previous hair style were two dutch braids that went down to mid back and had no bangs. The flower crown depicted was made by a previous party member, Fen, as a token of friendship.<br />
== History ==
<br />
== Notable Items ==
* Hat of Disguise
* Clockwork Amulet
* Bag of Devouring
* Half of the crown of Neverwinter
<br />
== Additional Companions ==
* Wild magic flumph
* Amadán
== Trivia ==
Helu dislikes animals, she has very little to no empathy for them. While this dislike extents to the menagerie the party has amassed, she will do her due diligence and take care of her mount, Amadán.
Helu and Oscar have an ongoing battle of wills on who can eat the macadamia nuts before the other can (so far Oscar is winning much to Helu's chagrin, she did buy them for herself after all).
Some of Helu's favorite foods are macadamia nuts, chocolate, expertly made meat dishes of any kind, and tiny cupcakes.
Her current favorite colors are soft yellows, pinks and blues.
[[Category:The Party]]
148f2ec9c4ed3f16b27d462610dea05e83a7a2ed
238
175
2023-11-02T20:41:28Z
Gingerdanger
2
wikitext
text/x-wiki
{{Infobox character
| name = Helu
| image =
| player = Moss
| party
| age
| race
| full_name =
| alias = <!-- or |aliases= -->
| family =
| infohdr = Statistics
| race = Half elf/half orc
| class = Barbarian
| subclass = Wild Magic
| str = 18 [+4]
| dex = 14 [+2]
| con = 16 [+3]
| wis = 15 [+1]
| int = 12 [+1]
| cha = 12 [+1]
}}
{{Character|aliases=Moss|relatives=Unnamed adoptive mother
Unnamed adoptive father
Ronaan Wisespeaker [adoptive brother]|affiliation=The Banes of Thunder|race=Half-Elf, Half-Orc|class=Barbarian|age=16|hometown=Neverwinter|name=Helu|Player=Bones|player=Bones|subclass=Wild Magic|image=Helu.png}}
== Appearance ==
Helu is a young half-elf, half-orc woman, even at sixteen years old she towers over most people, including her party. She possesses considerable strength and, before Eilif joined the Banes, Helu was the strongest of her party. She currently stands at 6' 9" (six feet, nine inches) tall, she has snow white hair cut into a diagonal bob with bangs and violet eyes, her skin is a warm brown with lighter vitiligo patches across her body.
While the party is back in Neverwinter, Helu has taken steps to protect her identity from Lord Rhadur Stoman, as well as any of his allies; currently her hair is dyed a dark brown with the crown of her head being a lighter shade of almond, she also wears makeup close to her skin tone to hide her vitiligo, especially on her face and neck. Her current attire is mostly dark browns and blacks, practical (and discreet) for a wandering adventurer, she wears a simple, black, three-quarter sleeved shirt, with a leather "bomber"-styled jacket over top, as well as grey finger-less gloves. A muted, warm orange scarf that can double as a cowl if the need arises, as well as a cloak made from the hide of Gorthok the Thunder Boar. Her pants and boots were found second hand, the pants are a dark wash denim with several brown leather straps, some reinforcing the pants, while others hold small pouches. The pants have leather knee pads and are tucked into severely distressed leather boots.
Not shown in the provided picture, her previous hair style were two dutch braids that went down to mid back and had no bangs. The flower crown depicted was made by a previous party member, Fen, as a token of friendship.<br />
== History ==
<br />
== Notable Items ==
* Hat of Disguise
* Clockwork Amulet
* Bag of Devouring
* Half of the crown of Neverwinter
<br />
== Additional Companions ==
* Wild magic flumph
* Amadán
== Trivia ==
Helu dislikes animals, she has very little to no empathy for them. While this dislike extents to the menagerie the party has amassed, she will do her due diligence and take care of her mount, Amadán.
Helu and Oscar have an ongoing battle of wills on who can eat the macadamia nuts before the other can (so far Oscar is winning much to Helu's chagrin, she did buy them for herself after all).
Some of Helu's favorite foods are macadamia nuts, chocolate, expertly made meat dishes of any kind, and tiny cupcakes.
Her current favorite colors are soft yellows, pinks and blues.
[[Category:The Party]]
c5e2e9feca1fae2ffc47b2f5c0ec54e79cc92f75
239
238
2023-11-02T20:46:01Z
Gingerdanger
2
wikitext
text/x-wiki
{{Infobox character
| name = Helu
| image =
| player = Moss
| affiliation = The Banes of Thunder
| age = 16
| alias = Moss
| family = Unnamed adoptive mother, Unnamed adoptive father, Ronaan Wisespeaker [adoptive brother], unnamed younger adoptive brother
| infohdr = Statistics
| race = Half elf/half orc
| class = Barbarian
| subclass = Wild Magic
| str = 18 [+4]
| dex = 14 [+2]
| con = 16 [+3]
| wis = 15 [+1]
| int = 12 [+1]
| cha = 12 [+1]
}}
{{Character|aliases=Moss|relatives=Unnamed adoptive mother
Unnamed adoptive father
Ronaan Wisespeaker [adoptive brother]|affiliation=The Banes of Thunder|race=Half-Elf, Half-Orc|class=Barbarian|age=16|hometown=Neverwinter|name=Helu|Player=Bones|player=Bones|subclass=Wild Magic|image=Helu.png}}
== Appearance ==
Helu is a young half-elf, half-orc woman, even at sixteen years old she towers over most people, including her party. She possesses considerable strength and, before Eilif joined the Banes, Helu was the strongest of her party. She currently stands at 6' 9" (six feet, nine inches) tall, she has snow white hair cut into a diagonal bob with bangs and violet eyes, her skin is a warm brown with lighter vitiligo patches across her body.
While the party is back in Neverwinter, Helu has taken steps to protect her identity from Lord Rhadur Stoman, as well as any of his allies; currently her hair is dyed a dark brown with the crown of her head being a lighter shade of almond, she also wears makeup close to her skin tone to hide her vitiligo, especially on her face and neck. Her current attire is mostly dark browns and blacks, practical (and discreet) for a wandering adventurer, she wears a simple, black, three-quarter sleeved shirt, with a leather "bomber"-styled jacket over top, as well as grey finger-less gloves. A muted, warm orange scarf that can double as a cowl if the need arises, as well as a cloak made from the hide of Gorthok the Thunder Boar. Her pants and boots were found second hand, the pants are a dark wash denim with several brown leather straps, some reinforcing the pants, while others hold small pouches. The pants have leather knee pads and are tucked into severely distressed leather boots.
Not shown in the provided picture, her previous hair style were two dutch braids that went down to mid back and had no bangs. The flower crown depicted was made by a previous party member, Fen, as a token of friendship.<br />
== History ==
<br />
== Notable Items ==
* Hat of Disguise
* Clockwork Amulet
* Bag of Devouring
* Half of the crown of Neverwinter
<br />
== Additional Companions ==
* Wild magic flumph
* Amadán
== Trivia ==
Helu dislikes animals, she has very little to no empathy for them. While this dislike extents to the menagerie the party has amassed, she will do her due diligence and take care of her mount, Amadán.
Helu and Oscar have an ongoing battle of wills on who can eat the macadamia nuts before the other can (so far Oscar is winning much to Helu's chagrin, she did buy them for herself after all).
Some of Helu's favorite foods are macadamia nuts, chocolate, expertly made meat dishes of any kind, and tiny cupcakes.
Her current favorite colors are soft yellows, pinks and blues.
[[Category:The Party]]
f5445706fb4e81ede7354c55487d45747f70c74d
Module:Formatted appearance
828
367
631
2023-08-31T04:21:25Z
m>Pppery
0
Typo
Scribunto
text/plain
-- This module requires the use of Module:List.
local p = {}
-- Local function which is used to get a correctly formatted entry.
-- Function checks if the array had a value added by checking the counter,
-- and returns the relevant result.
local function getFormattedEntry(args, counter)
if (counter == 1) then -- Check if the counter stayed the same.
return "" -- Nothing was added to array; Return empty string.
elseif (counter == 2) then -- Check if only one value was added to the array.
return args[1] -- Only one value was added to array; Return that value.
else -- The array had more than one value added.
return table.concat(args, "<br/>") -- Retrieve the formatted plainlist.
end
end
--[[
Local function which is used to format an appearance for a comic book,
in the style of:
Line 1: <comic book title> #<issue number> (with comic book title in italics)
Line 2: <release date>
For other usages, see createGenericEntry().
The function works with the following combinations:
-- Only comic book title (example: "The Incredible Hulk").
-- Title and issue number (example: "The Incredible Hulk" and "181").
-- Title and release date (example: "The Incredible Hulk and "November 1974").
-- Title, issue number and release date (example: "The Incredible Hulk", "181" and "November 1974").
-- Only release date (example: "November 1974").
--]]
local function createComicEntry(appearanceMajor, appearanceMinor, appearanceDate)
local fullString = {} -- Variable to save the array.
local counter = 1 -- Variable to save the array counter.
if (appearanceMajor ~= nil) then -- Check if a comic book title was entered.
if (appearanceMinor == nil) then -- A comic book title was entered; Check if a issue number was entered.
fullString[counter] = appearanceMajor -- A issue was not entered; Add only the comic book title to the array.
counter = counter + 1 -- Increment counter by one.
else
fullString[counter] = appearanceMajor .. " " .. appearanceMinor -- A issue was entered; Add both to the array.
counter = counter + 1 -- Increment counter by one.
end
end
if (appearanceDate ~= nil) then -- Check if a release date was entered.
fullString[counter] = appearanceDate -- A release date was entered; Add it to the array.
counter = counter + 1 -- Increment counter by one.
end
return getFormattedEntry(fullString, counter) -- Call getFormattedEntry() to get a correctly formatted entry.
end
--[[
Local function which is used to format an appearance for most usages,
including television, film, books, songs and games, in the style of:
Line 1: <minor work title> (in quotes) (Minor works include: TV episodes, chapters, songs and game missions)
Line 2: <major work title> (in italics) (Major works include: TV series, films, books, albums and games)
Line 3: <release date>
For comic book usages, see createComicEntry().
The function works with the following combinations:
-- Only minor work title (example: "Live Together, Die Alone").
-- Minor work title and major work title (example: "Live Together, Die Alone" and "Lost").
-- Minor work title and release date (example: "Live Together, Die Alone" and "May 24, 2006").
-- Minor work title, major work title and release date (example: "Live Together, Die Alone", "Lost" and "May 24, 2006").
-- Only major work title (example: "Lost").
-- major work title and release date (example: "Lost" and "May 24, 2006").
-- Only release date (example: "May 24, 2006").
--]]
local function createGenericEntry(appearanceMajor, appearanceMinor, appearanceDate)
local fullString = {} -- Variable to save the array.
local counter = 1 -- Variable to save the array counter.
if (appearanceMinor ~= nil) then -- Check if a minor appearance was entered.
fullString[counter] = appearanceMinor -- A minor appearance was entered; Add it to the array.
counter = counter + 1 -- Increment counter by one.
end
if (appearanceMajor ~= nil) then -- Check if a major appearance was entered.
fullString[counter] = appearanceMajor -- A major appearance was entered; Add it to the array.
counter = counter + 1 -- Increment counter by one.
end
if (appearanceDate ~= nil) then -- Check if a release date was entered.
fullString[counter] = appearanceDate -- A release date was entered; Add it to the array.
counter = counter + 1 -- Increment counter by one.
end
return getFormattedEntry(fullString, counter) -- Call getFormattedEntry() to get a correctly formatted entry.
end
-- Local function which is used to format with a hash symbol comic book issues.
-- For other minor works, see getFormattedGenericMinorWork().
local function getFormattedComicMinorWorkTitle(issue)
if (issue ~= nil) then -- Check if the issue is not nil.
if (string.find(issue, "#")) then -- Check if the issue already has a hash symbol.
return issue -- Hash symbol already present; Return issue.
else
local formattedString = string.gsub(issue, "%d+", "#%1") -- Hash symbol not found; Add the symbol before the issue number.
return formattedString -- Return issue.
end
else
return nil -- issue is nil; Return nil.
end
end
-- Local function which is used to format with quotes a minor work title of most types.
-- For comic book issues, see getFormattedComicMinorWork() (see [MOS:MINORWORK]).
local function getFormattedGenericMinorWorkTitle(title)
if (title ~= nil) then -- Check if the title is not nil.
return "\"" .. title .. "\"" -- Title is not nil; Add quotes to the title.
else
return nil -- Title is nil; Return nil.
end
end
-- Local function which is used to format with italics a major work title (see [MOS:MAJORWORK]).
local function getFormattedMajorWorkTitle(title)
if (title ~= nil) then -- Check if the title is not nil.
return "''" .. title .. "''" -- Title is not nil; Add italics to the title.
else
return nil -- Title is nil; Return nil.
end
end
-- Local function which does the actual main process.
local function _getFormattedAppearance(args)
local appearanceMajor = args['major_work'] -- Get the title of the major work.
local appearanceMinor = args['minor_work'] -- Get the title of the minor work.
local isComic = false -- Variable to save the status of wether the appearence is from a comic book.
if (args['issue'] ~= nil) then -- Check if the comic specific issue is not nil.
appearanceMinor = args['issue'] -- Issue is not nil; Get the issue number.
isComic = true -- Set isComic to true.
end
local appearanceDate = args['date'] -- Get the release date of the minor work.
local formattedAppearanceMajor = getFormattedMajorWorkTitle(appearanceMajor) -- Call getFormattedMajorWorkTitle() to get a formatted major work title.
if (isComic == false) then -- Check if the appearance is a comic book appearance.
-- The appearance is not a comic book appearance;
local formattedAppearanceMinor = getFormattedGenericMinorWorkTitle(appearanceMinor) -- Call getFormattedGenericMinorWorkTitle() to get a formatted minor work title.
return createGenericEntry(formattedAppearanceMajor, formattedAppearanceMinor, appearanceDate) -- Call createGenericEntry() to create an appearance entry.
else
-- The appearance is a comic book appearance.
local formattedAppearanceMinor = getFormattedComicMinorWorkTitle(appearanceMinor) -- Call getFormattedComicMinorWorkTitle() to get a formatted minor work title.
return createComicEntry(formattedAppearanceMajor, formattedAppearanceMinor, appearanceDate) -- Call createComicEntry() to create a comic book appearance entry.
end
end
--[[
Public function which is used to format the |first_appeared= and |last_appeared= fields.
The usage of this module allows for correct title formatting (see [MOS:MAJORWORK] and [MOS:MINORWORK]),
and correct line breaks based on guidelines (see [WP:UBLIST]).
Parameters:
-- |major_work= — optional; The title of the major work the fictional element appeared in.
Major works include TV series, films, books, albums and games.
-- |minor_work= — optional; The title of the minor work the fictional element appeared in.
Minor works include TV episodes, chapters, songs and game missions.
-- |issue= — optional; The number of the comic book issue the fictional element appeared in.
-- |date= — optional; The date of the publication/release of the minor work where the fictional element appeared in.
--]]
function p.getFormattedAppearance(frame)
local getArgs = require('Module:Arguments').getArgs -- Use Module:Arguments to access module arguments.
local args = getArgs(frame) -- Get the arguments sent via the template.
return _getFormattedAppearance(args) -- Call _getFormattedAppearance() to perform the actual process.
end
return p
801fe2d9de9c3eb00e60fd962b6450e0ab1adc0f
632
631
2023-11-02T21:46:47Z
Gingerdanger
2
1 revision imported
Scribunto
text/plain
-- This module requires the use of Module:List.
local p = {}
-- Local function which is used to get a correctly formatted entry.
-- Function checks if the array had a value added by checking the counter,
-- and returns the relevant result.
local function getFormattedEntry(args, counter)
if (counter == 1) then -- Check if the counter stayed the same.
return "" -- Nothing was added to array; Return empty string.
elseif (counter == 2) then -- Check if only one value was added to the array.
return args[1] -- Only one value was added to array; Return that value.
else -- The array had more than one value added.
return table.concat(args, "<br/>") -- Retrieve the formatted plainlist.
end
end
--[[
Local function which is used to format an appearance for a comic book,
in the style of:
Line 1: <comic book title> #<issue number> (with comic book title in italics)
Line 2: <release date>
For other usages, see createGenericEntry().
The function works with the following combinations:
-- Only comic book title (example: "The Incredible Hulk").
-- Title and issue number (example: "The Incredible Hulk" and "181").
-- Title and release date (example: "The Incredible Hulk and "November 1974").
-- Title, issue number and release date (example: "The Incredible Hulk", "181" and "November 1974").
-- Only release date (example: "November 1974").
--]]
local function createComicEntry(appearanceMajor, appearanceMinor, appearanceDate)
local fullString = {} -- Variable to save the array.
local counter = 1 -- Variable to save the array counter.
if (appearanceMajor ~= nil) then -- Check if a comic book title was entered.
if (appearanceMinor == nil) then -- A comic book title was entered; Check if a issue number was entered.
fullString[counter] = appearanceMajor -- A issue was not entered; Add only the comic book title to the array.
counter = counter + 1 -- Increment counter by one.
else
fullString[counter] = appearanceMajor .. " " .. appearanceMinor -- A issue was entered; Add both to the array.
counter = counter + 1 -- Increment counter by one.
end
end
if (appearanceDate ~= nil) then -- Check if a release date was entered.
fullString[counter] = appearanceDate -- A release date was entered; Add it to the array.
counter = counter + 1 -- Increment counter by one.
end
return getFormattedEntry(fullString, counter) -- Call getFormattedEntry() to get a correctly formatted entry.
end
--[[
Local function which is used to format an appearance for most usages,
including television, film, books, songs and games, in the style of:
Line 1: <minor work title> (in quotes) (Minor works include: TV episodes, chapters, songs and game missions)
Line 2: <major work title> (in italics) (Major works include: TV series, films, books, albums and games)
Line 3: <release date>
For comic book usages, see createComicEntry().
The function works with the following combinations:
-- Only minor work title (example: "Live Together, Die Alone").
-- Minor work title and major work title (example: "Live Together, Die Alone" and "Lost").
-- Minor work title and release date (example: "Live Together, Die Alone" and "May 24, 2006").
-- Minor work title, major work title and release date (example: "Live Together, Die Alone", "Lost" and "May 24, 2006").
-- Only major work title (example: "Lost").
-- major work title and release date (example: "Lost" and "May 24, 2006").
-- Only release date (example: "May 24, 2006").
--]]
local function createGenericEntry(appearanceMajor, appearanceMinor, appearanceDate)
local fullString = {} -- Variable to save the array.
local counter = 1 -- Variable to save the array counter.
if (appearanceMinor ~= nil) then -- Check if a minor appearance was entered.
fullString[counter] = appearanceMinor -- A minor appearance was entered; Add it to the array.
counter = counter + 1 -- Increment counter by one.
end
if (appearanceMajor ~= nil) then -- Check if a major appearance was entered.
fullString[counter] = appearanceMajor -- A major appearance was entered; Add it to the array.
counter = counter + 1 -- Increment counter by one.
end
if (appearanceDate ~= nil) then -- Check if a release date was entered.
fullString[counter] = appearanceDate -- A release date was entered; Add it to the array.
counter = counter + 1 -- Increment counter by one.
end
return getFormattedEntry(fullString, counter) -- Call getFormattedEntry() to get a correctly formatted entry.
end
-- Local function which is used to format with a hash symbol comic book issues.
-- For other minor works, see getFormattedGenericMinorWork().
local function getFormattedComicMinorWorkTitle(issue)
if (issue ~= nil) then -- Check if the issue is not nil.
if (string.find(issue, "#")) then -- Check if the issue already has a hash symbol.
return issue -- Hash symbol already present; Return issue.
else
local formattedString = string.gsub(issue, "%d+", "#%1") -- Hash symbol not found; Add the symbol before the issue number.
return formattedString -- Return issue.
end
else
return nil -- issue is nil; Return nil.
end
end
-- Local function which is used to format with quotes a minor work title of most types.
-- For comic book issues, see getFormattedComicMinorWork() (see [MOS:MINORWORK]).
local function getFormattedGenericMinorWorkTitle(title)
if (title ~= nil) then -- Check if the title is not nil.
return "\"" .. title .. "\"" -- Title is not nil; Add quotes to the title.
else
return nil -- Title is nil; Return nil.
end
end
-- Local function which is used to format with italics a major work title (see [MOS:MAJORWORK]).
local function getFormattedMajorWorkTitle(title)
if (title ~= nil) then -- Check if the title is not nil.
return "''" .. title .. "''" -- Title is not nil; Add italics to the title.
else
return nil -- Title is nil; Return nil.
end
end
-- Local function which does the actual main process.
local function _getFormattedAppearance(args)
local appearanceMajor = args['major_work'] -- Get the title of the major work.
local appearanceMinor = args['minor_work'] -- Get the title of the minor work.
local isComic = false -- Variable to save the status of wether the appearence is from a comic book.
if (args['issue'] ~= nil) then -- Check if the comic specific issue is not nil.
appearanceMinor = args['issue'] -- Issue is not nil; Get the issue number.
isComic = true -- Set isComic to true.
end
local appearanceDate = args['date'] -- Get the release date of the minor work.
local formattedAppearanceMajor = getFormattedMajorWorkTitle(appearanceMajor) -- Call getFormattedMajorWorkTitle() to get a formatted major work title.
if (isComic == false) then -- Check if the appearance is a comic book appearance.
-- The appearance is not a comic book appearance;
local formattedAppearanceMinor = getFormattedGenericMinorWorkTitle(appearanceMinor) -- Call getFormattedGenericMinorWorkTitle() to get a formatted minor work title.
return createGenericEntry(formattedAppearanceMajor, formattedAppearanceMinor, appearanceDate) -- Call createGenericEntry() to create an appearance entry.
else
-- The appearance is a comic book appearance.
local formattedAppearanceMinor = getFormattedComicMinorWorkTitle(appearanceMinor) -- Call getFormattedComicMinorWorkTitle() to get a formatted minor work title.
return createComicEntry(formattedAppearanceMajor, formattedAppearanceMinor, appearanceDate) -- Call createComicEntry() to create a comic book appearance entry.
end
end
--[[
Public function which is used to format the |first_appeared= and |last_appeared= fields.
The usage of this module allows for correct title formatting (see [MOS:MAJORWORK] and [MOS:MINORWORK]),
and correct line breaks based on guidelines (see [WP:UBLIST]).
Parameters:
-- |major_work= — optional; The title of the major work the fictional element appeared in.
Major works include TV series, films, books, albums and games.
-- |minor_work= — optional; The title of the minor work the fictional element appeared in.
Minor works include TV episodes, chapters, songs and game missions.
-- |issue= — optional; The number of the comic book issue the fictional element appeared in.
-- |date= — optional; The date of the publication/release of the minor work where the fictional element appeared in.
--]]
function p.getFormattedAppearance(frame)
local getArgs = require('Module:Arguments').getArgs -- Use Module:Arguments to access module arguments.
local args = getArgs(frame) -- Get the arguments sent via the template.
return _getFormattedAppearance(args) -- Call _getFormattedAppearance() to perform the actual process.
end
return p
801fe2d9de9c3eb00e60fd962b6450e0ab1adc0f
Template:Infobox character
10
177
583
2023-09-28T05:08:53Z
m>Pppery
0
Reverted edits by [[Special:Contributions/Ruben061737116|Ruben061737116]] ([[User talk:Ruben061737116|talk]]) to last revision by Pppery
wikitext
text/x-wiki
{{Infobox
| bodystyle = border-spacing: 2px 5px;
| above = {{If empty |{{{name|}}} |<includeonly>{{PAGENAMEBASE}}</includeonly> }}
| abovestyle = background: {{If empty |{{{color|}}} |{{{colour|}}} |#DEDEE2 }}; {{#if: {{{color|}}}{{{colour|}}} | color: {{Greater color contrast ratio|{{If empty |{{{color|}}} |{{{colour|}}} }}|black|white }}; }}
| subheader = {{#if: {{{series|}}}{{{franchise|}}} | {{#if: {{{series|}}} | ''{{{series|}}}'' | {{{franchise|}}} }} character{{#if: {{{multiple|}}} | s }} }}
| image = {{{image|}}}|
| caption = {{{caption|}}}
| headerstyle = background: {{If empty |{{{color|}}} |{{{colour|}}} |#DEDEE2 }}; {{#if: {{{color|}}}{{{colour|}}} |color: {{Greater color contrast ratio|{{If empty |{{{color|}}} |{{{colour|}}} }}|black|white }}; }}
| label1 = First appearance
| data1 = {{#if: {{{first|}}} | {{{first|}}} | {{#invoke:Formatted appearance|getFormattedAppearance|major_work={{{first_major|}}} |minor_work={{{first_minor|}}} |issue={{{first_issue|}}} |date={{{first_date|}}} }} }}
| label2 = First game
| data2 = {{{firstgame|}}}
| label3 = Last appearance
| data3 = {{#if: {{{last|}}} | {{{last|}}} | {{#invoke:Formatted appearance|getFormattedAppearance|major_work={{{last_major|}}} |minor_work={{{last_minor|}}} |issue={{{last_issue|}}} |date={{{last_date|}}} }} }}
| label4 = Created by
| data4 = {{{creator|}}}
| label5 = Based on
| data5 = {{{based_on|}}}
| label6 = Adapted by
| data6 = {{{adapted_by|}}}
| label7 = Designed by
| data7 = {{{designer|}}}
| label8 = Portrayed by
| data8 = {{{portrayer|}}}
| label9 = Voiced by
| data9 = {{{voice|}}}
| label10 = Motion capture
| data10 = {{{motion_actor|}}}
| label11 = {{{lbl1|}}}
| data11 = {{{data1|}}}
| label12 = {{{lbl2|}}}
| data12 = {{{data2|}}}
| label13 = {{{lbl3|}}}
| data13 = {{{data3|}}}
| label14 = {{{lbl4|}}}
| data14 = {{{data4|}}}
| label15 = {{{lbl5|}}}
| data15 = {{{data5|}}}
| header20 = {{#if: {{{noinfo|}}} || {{#if: {{{full_name|}}} {{{alias|}}} {{{aliases|}}} {{{nickname|}}} {{{nicknames|}}} {{{race|}}} {{{species|}}} {{{gender|}}} {{{title|}}} {{{occupation|}}} {{{position|}}} {{{class|}}} {{{affiliation|}}} {{{alignment|}}} {{{fighting_style|}}} {{{weapon|}}} {{{family|}}} {{{spouse|}}} {{{spouses|}}} {{{significant_other|}}} {{{significant_others|}}} {{{children|}}} {{{relatives|}}} {{{religion|}}} {{{origin|}}} {{{home|}}} {{{nationality|}}} {{{data21|}}} {{{data22|}}} {{{data23|}}} {{{data24|}}} {{{data25|}}} | {{If empty |{{{info-hdr|}}} |In-universe information }} }} }}
| label21 = Full name
| data21 = {{{full_name|}}}
| label22 = {{#if: {{{alias|}}} | Alias | Aliases }}
| data22 = {{If empty |{{{alias|}}} |{{{aliases|}}} }}
| label23 = {{#if: {{{nickname|}}} | Nickname | Nicknames }}
| data23 = {{If empty |{{{nickname|}}} |{{{nicknames|}}} }}
| label24 = {{#if: {{{race|}}} | Race | Species }}
| data24 = {{If empty |{{{race|}}} |{{{species|}}} }}
| label25 = Gender
| data25 = {{{gender|}}}
| label26 = Title
| data26 = {{{title|}}}
| label27 = {{#if: {{{occupation|}}} | Occupation | {{#if: {{{position|}}} | Position | Class }} }}
| data27 = {{If empty |{{{occupation|}}} |{{{position|}}} |{{{class|}}} }}
| label28 = {{#if: {{{affiliation|}}} | Affiliation | Alignment }}
| data28 = {{If empty |{{{affiliation|}}} |{{{alignment|}}} }}
| label29 = Fighting style
| data29 = {{{fighting_style|}}}
| label30 = Weapon
| data30 = {{{weapon|}}}
| label31 = Family
| data31 = {{{family|}}}
| label32 = {{#if: {{{spouse|}}} | Spouse | Spouses }}
| data32 = {{If empty |{{{spouse|}}} |{{{spouses|}}} }}
| label33 = {{#if: {{{significant_other|}}} | Significant other | Significant others }}
| data33 = {{If empty |{{{significant_other|}}} |{{{significant_others|}}} }}
| label34 = Children
| data34 = {{{children|}}}
| label35 = Relatives
| data35 = {{{relatives|}}}
| label36 = Religion
| data36 = {{{religion|}}}
| label37 = {{#if: {{{origin|}}} | Origin | Home }}
| data37 = {{If empty |{{{origin|}}} |{{{home|}}} }}
| label38 = Nationality
| data38 = {{{nationality|}}}
| label39 = {{{lbl21|}}}
| data39 = {{{data21|}}}
| label40 = {{{lbl22|}}}
| data40 = {{{data22|}}}
| label41 = {{{lbl23|}}}
| data41 = {{{data23|}}}
| label42 = {{{lbl24|}}}
| data42 = {{{data24|}}}
| label43 = {{{lbl25|}}}
| data43 = {{{data25|}}}
| header50 = {{#if: {{{data31|}}} {{{data32|}}} {{{data33|}}} {{{data34|}}} {{{data35|}}} | {{{extra-hdr|}}} }}
| label51 = {{{lbl31|}}}
| data51 = {{{data31|}}}
| label52 = {{{lbl32|}}}
| data52 = {{{data32|}}}
| label53 = {{{lbl33|}}}
| data53 = {{{data33|}}}
| label54 = {{{lbl34|}}}
| data54 = {{{data34|}}}
| label55 = {{{lbl35|}}}
| data55 = {{{data35|}}}
}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
3ce93cfa3dfb9b4b9608b850f3d4e6ac282b3bc9
241
2023-11-02T21:14:41Z
Gingerdanger
2
Created page with "{{Infobox character | color = <!-- headers background colour; the foreground colour is automatically computed --> | name = | series = <!-- or |franchise=; use without the italic on the outside --> | multiple = | image = | image_upright = | alt = | caption = | first_major = <!-- per [[MOS:MAJORWORK]] - major works include TV series, films, books, albums and games -->..."
wikitext
text/x-wiki
{{Infobox character
| color = <!-- headers background colour; the foreground colour is automatically computed -->
| name =
| series = <!-- or |franchise=; use without the italic on the outside -->
| multiple =
| image =
| image_upright =
| alt =
| caption =
| first_major = <!-- per [[MOS:MAJORWORK]] - major works include TV series, films, books, albums and games -->
| first_minor = <!-- or |first_issue=; Per [[MOS:MINORWORK]] - minor works include TV episodes, chapters, songs and game missions -->
| first_date =
| last_major =
| last_minor = <!-- or |last_issue= -->
| last_date =
| first =
| firstgame =
| last =
| creator = <!-- only the credited creators; use adapted_by= for adaptations -->
| based_on = <!-- if not an original creation, use {{based on|character|author}} -->
| adapted_by = <!-- for character adaption articles -->
| designer =
| portrayer =
| voice =
| motion_actor =
| lbl1 =
| data1 =
| lbl2 =
| data2 =
| lbl3 =
| data3 =
| lbl4 =
| data4 =
| lbl5 =
| data5 =
| noinfo =
| info-hdr =
| full_name =
| nickname = <!-- or |nicknames= -->
| alias = <!-- or |aliases= -->
| species = <!-- or |race=; for non-humans only -->
| gender = <!-- if not obvious -->
| title =
| occupation = <!-- or |position= or |class= -->
| affiliation = <!-- or |alignment= -->
| fighting_style =
| weapon =
| family =
| spouse = <!-- or |spouses= -->
| significant_other = <!-- or |significant_others= -->
| children =
| relatives =
| religion =
| origin = <!-- or |home= -->
| nationality =
| lbl21 =
| data21 =
| lbl22 =
| data22 =
| lbl23 =
| data23 =
| lbl24 =
| data24 =
| lbl25 =
| data25 =
| extra-hdr =
| lbl31 =
| data31 =
| lbl32 =
| data32 =
| lbl33 =
| data33 =
| lbl34 =
| data34 =
| lbl35 =
| data35 =
}}
f2b9dbc1f305fd8ba56fda0db8d7475a48eede01
242
241
2023-11-02T21:15:01Z
Gingerdanger
2
wikitext
text/x-wiki
| color = <!-- headers background colour; the foreground colour is automatically computed -->
| name =
| series = <!-- or |franchise=; use without the italic on the outside -->
| multiple =
| image =
| image_upright =
| alt =
| caption =
| first_major = <!-- per [[MOS:MAJORWORK]] - major works include TV series, films, books, albums and games -->
| first_minor = <!-- or |first_issue=; Per [[MOS:MINORWORK]] - minor works include TV episodes, chapters, songs and game missions -->
| first_date =
| last_major =
| last_minor = <!-- or |last_issue= -->
| last_date =
| first =
| firstgame =
| last =
| creator = <!-- only the credited creators; use adapted_by= for adaptations -->
| based_on = <!-- if not an original creation, use {{based on|character|author}} -->
| adapted_by = <!-- for character adaption articles -->
| designer =
| portrayer =
| voice =
| motion_actor =
| lbl1 =
| data1 =
| lbl2 =
| data2 =
| lbl3 =
| data3 =
| lbl4 =
| data4 =
| lbl5 =
| data5 =
| noinfo =
| info-hdr =
| full_name =
| nickname = <!-- or |nicknames= -->
| alias = <!-- or |aliases= -->
| species = <!-- or |race=; for non-humans only -->
| gender = <!-- if not obvious -->
| title =
| occupation = <!-- or |position= or |class= -->
| affiliation = <!-- or |alignment= -->
| fighting_style =
| weapon =
| family =
| spouse = <!-- or |spouses= -->
| significant_other = <!-- or |significant_others= -->
| children =
| relatives =
| religion =
| origin = <!-- or |home= -->
| nationality =
| lbl21 =
| data21 =
| lbl22 =
| data22 =
| lbl23 =
| data23 =
| lbl24 =
| data24 =
| lbl25 =
| data25 =
| extra-hdr =
| lbl31 =
| data31 =
| lbl32 =
| data32 =
| lbl33 =
| data33 =
| lbl34 =
| data34 =
| lbl35 =
| data35 =
0753ec4ea2c62410ffe4b0b00a093df212ccfc3a
243
242
2023-11-02T21:15:38Z
Gingerdanger
2
wikitext
text/x-wiki
{{Infobox
| bodystyle = border-spacing: 2px 5px;
| above = {{If empty |{{{name|}}} |<includeonly>{{PAGENAMEBASE}}</includeonly> }}
| abovestyle = background: {{If empty |{{{color|}}} |{{{colour|}}} |#DEDEE2 }}; {{#if: {{{color|}}}{{{colour|}}} | color: {{Greater color contrast ratio|{{If empty |{{{color|}}} |{{{colour|}}} }}|black|white }}; }}
| subheader = {{#if: {{{series|}}}{{{franchise|}}} | {{#if: {{{series|}}} | ''{{{series|}}}'' | {{{franchise|}}} }} character{{#if: {{{multiple|}}} | s }} }}
| image = {{{image|}}}|
| caption = {{{caption|}}}
| headerstyle = background: {{If empty |{{{color|}}} |{{{colour|}}} |#DEDEE2 }}; {{#if: {{{color|}}}{{{colour|}}} |color: {{Greater color contrast ratio|{{If empty |{{{color|}}} |{{{colour|}}} }}|black|white }}; }}
| label1 = First appearance
| data1 = {{#if: {{{first|}}} | {{{first|}}} | {{#invoke:Formatted appearance|getFormattedAppearance|major_work={{{first_major|}}} |minor_work={{{first_minor|}}} |issue={{{first_issue|}}} |date={{{first_date|}}} }} }}
| label2 = First game
| data2 = {{{firstgame|}}}
| label3 = Last appearance
| data3 = {{#if: {{{last|}}} | {{{last|}}} | {{#invoke:Formatted appearance|getFormattedAppearance|major_work={{{last_major|}}} |minor_work={{{last_minor|}}} |issue={{{last_issue|}}} |date={{{last_date|}}} }} }}
| label4 = Created by
| data4 = {{{creator|}}}
| label5 = Based on
| data5 = {{{based_on|}}}
| label6 = Adapted by
| data6 = {{{adapted_by|}}}
| label7 = Designed by
| data7 = {{{designer|}}}
| label8 = Portrayed by
| data8 = {{{portrayer|}}}
| label9 = Voiced by
| data9 = {{{voice|}}}
| label10 = Motion capture
| data10 = {{{motion_actor|}}}
| label11 = {{{lbl1|}}}
| data11 = {{{data1|}}}
| label12 = {{{lbl2|}}}
| data12 = {{{data2|}}}
| label13 = {{{lbl3|}}}
| data13 = {{{data3|}}}
| label14 = {{{lbl4|}}}
| data14 = {{{data4|}}}
| label15 = {{{lbl5|}}}
| data15 = {{{data5|}}}
| header20 = {{#if: {{{noinfo|}}} || {{#if: {{{full_name|}}} {{{alias|}}} {{{aliases|}}} {{{nickname|}}} {{{nicknames|}}} {{{race|}}} {{{species|}}} {{{gender|}}} {{{title|}}} {{{occupation|}}} {{{position|}}} {{{class|}}} {{{affiliation|}}} {{{alignment|}}} {{{fighting_style|}}} {{{weapon|}}} {{{family|}}} {{{spouse|}}} {{{spouses|}}} {{{significant_other|}}} {{{significant_others|}}} {{{children|}}} {{{relatives|}}} {{{religion|}}} {{{origin|}}} {{{home|}}} {{{nationality|}}} {{{data21|}}} {{{data22|}}} {{{data23|}}} {{{data24|}}} {{{data25|}}} | {{If empty |{{{info-hdr|}}} |In-universe information }} }} }}
| label21 = Full name
| data21 = {{{full_name|}}}
| label22 = {{#if: {{{alias|}}} | Alias | Aliases }}
| data22 = {{If empty |{{{alias|}}} |{{{aliases|}}} }}
| label23 = {{#if: {{{nickname|}}} | Nickname | Nicknames }}
| data23 = {{If empty |{{{nickname|}}} |{{{nicknames|}}} }}
| label24 = {{#if: {{{race|}}} | Race | Species }}
| data24 = {{If empty |{{{race|}}} |{{{species|}}} }}
| label25 = Gender
| data25 = {{{gender|}}}
| label26 = Title
| data26 = {{{title|}}}
| label27 = {{#if: {{{occupation|}}} | Occupation | {{#if: {{{position|}}} | Position | Class }} }}
| data27 = {{If empty |{{{occupation|}}} |{{{position|}}} |{{{class|}}} }}
| label28 = {{#if: {{{affiliation|}}} | Affiliation | Alignment }}
| data28 = {{If empty |{{{affiliation|}}} |{{{alignment|}}} }}
| label29 = Fighting style
| data29 = {{{fighting_style|}}}
| label30 = Weapon
| data30 = {{{weapon|}}}
| label31 = Family
| data31 = {{{family|}}}
| label32 = {{#if: {{{spouse|}}} | Spouse | Spouses }}
| data32 = {{If empty |{{{spouse|}}} |{{{spouses|}}} }}
| label33 = {{#if: {{{significant_other|}}} | Significant other | Significant others }}
| data33 = {{If empty |{{{significant_other|}}} |{{{significant_others|}}} }}
| label34 = Children
| data34 = {{{children|}}}
| label35 = Relatives
| data35 = {{{relatives|}}}
| label36 = Religion
| data36 = {{{religion|}}}
| label37 = {{#if: {{{origin|}}} | Origin | Home }}
| data37 = {{If empty |{{{origin|}}} |{{{home|}}} }}
| label38 = Nationality
| data38 = {{{nationality|}}}
| label39 = {{{lbl21|}}}
| data39 = {{{data21|}}}
| label40 = {{{lbl22|}}}
| data40 = {{{data22|}}}
| label41 = {{{lbl23|}}}
| data41 = {{{data23|}}}
| label42 = {{{lbl24|}}}
| data42 = {{{data24|}}}
| label43 = {{{lbl25|}}}
| data43 = {{{data25|}}}
| header50 = {{#if: {{{data31|}}} {{{data32|}}} {{{data33|}}} {{{data34|}}} {{{data35|}}} | {{{extra-hdr|}}} }}
| label51 = {{{lbl31|}}}
| data51 = {{{data31|}}}
| label52 = {{{lbl32|}}}
| data52 = {{{data32|}}}
| label53 = {{{lbl33|}}}
| data53 = {{{data33|}}}
| label54 = {{{lbl34|}}}
| data54 = {{{data34|}}}
| label55 = {{{lbl35|}}}
| data55 = {{{data35|}}}
}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
3ce93cfa3dfb9b4b9608b850f3d4e6ac282b3bc9
584
243
2023-11-02T21:46:31Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
{{Infobox
| bodystyle = border-spacing: 2px 5px;
| above = {{If empty |{{{name|}}} |<includeonly>{{PAGENAMEBASE}}</includeonly> }}
| abovestyle = background: {{If empty |{{{color|}}} |{{{colour|}}} |#DEDEE2 }}; {{#if: {{{color|}}}{{{colour|}}} | color: {{Greater color contrast ratio|{{If empty |{{{color|}}} |{{{colour|}}} }}|black|white }}; }}
| subheader = {{#if: {{{series|}}}{{{franchise|}}} | {{#if: {{{series|}}} | ''{{{series|}}}'' | {{{franchise|}}} }} character{{#if: {{{multiple|}}} | s }} }}
| image = {{{image|}}}|
| caption = {{{caption|}}}
| headerstyle = background: {{If empty |{{{color|}}} |{{{colour|}}} |#DEDEE2 }}; {{#if: {{{color|}}}{{{colour|}}} |color: {{Greater color contrast ratio|{{If empty |{{{color|}}} |{{{colour|}}} }}|black|white }}; }}
| label1 = First appearance
| data1 = {{#if: {{{first|}}} | {{{first|}}} | {{#invoke:Formatted appearance|getFormattedAppearance|major_work={{{first_major|}}} |minor_work={{{first_minor|}}} |issue={{{first_issue|}}} |date={{{first_date|}}} }} }}
| label2 = First game
| data2 = {{{firstgame|}}}
| label3 = Last appearance
| data3 = {{#if: {{{last|}}} | {{{last|}}} | {{#invoke:Formatted appearance|getFormattedAppearance|major_work={{{last_major|}}} |minor_work={{{last_minor|}}} |issue={{{last_issue|}}} |date={{{last_date|}}} }} }}
| label4 = Created by
| data4 = {{{creator|}}}
| label5 = Based on
| data5 = {{{based_on|}}}
| label6 = Adapted by
| data6 = {{{adapted_by|}}}
| label7 = Designed by
| data7 = {{{designer|}}}
| label8 = Portrayed by
| data8 = {{{portrayer|}}}
| label9 = Voiced by
| data9 = {{{voice|}}}
| label10 = Motion capture
| data10 = {{{motion_actor|}}}
| label11 = {{{lbl1|}}}
| data11 = {{{data1|}}}
| label12 = {{{lbl2|}}}
| data12 = {{{data2|}}}
| label13 = {{{lbl3|}}}
| data13 = {{{data3|}}}
| label14 = {{{lbl4|}}}
| data14 = {{{data4|}}}
| label15 = {{{lbl5|}}}
| data15 = {{{data5|}}}
| header20 = {{#if: {{{noinfo|}}} || {{#if: {{{full_name|}}} {{{alias|}}} {{{aliases|}}} {{{nickname|}}} {{{nicknames|}}} {{{race|}}} {{{species|}}} {{{gender|}}} {{{title|}}} {{{occupation|}}} {{{position|}}} {{{class|}}} {{{affiliation|}}} {{{alignment|}}} {{{fighting_style|}}} {{{weapon|}}} {{{family|}}} {{{spouse|}}} {{{spouses|}}} {{{significant_other|}}} {{{significant_others|}}} {{{children|}}} {{{relatives|}}} {{{religion|}}} {{{origin|}}} {{{home|}}} {{{nationality|}}} {{{data21|}}} {{{data22|}}} {{{data23|}}} {{{data24|}}} {{{data25|}}} | {{If empty |{{{info-hdr|}}} |In-universe information }} }} }}
| label21 = Full name
| data21 = {{{full_name|}}}
| label22 = {{#if: {{{alias|}}} | Alias | Aliases }}
| data22 = {{If empty |{{{alias|}}} |{{{aliases|}}} }}
| label23 = {{#if: {{{nickname|}}} | Nickname | Nicknames }}
| data23 = {{If empty |{{{nickname|}}} |{{{nicknames|}}} }}
| label24 = {{#if: {{{race|}}} | Race | Species }}
| data24 = {{If empty |{{{race|}}} |{{{species|}}} }}
| label25 = Gender
| data25 = {{{gender|}}}
| label26 = Title
| data26 = {{{title|}}}
| label27 = {{#if: {{{occupation|}}} | Occupation | {{#if: {{{position|}}} | Position | Class }} }}
| data27 = {{If empty |{{{occupation|}}} |{{{position|}}} |{{{class|}}} }}
| label28 = {{#if: {{{affiliation|}}} | Affiliation | Alignment }}
| data28 = {{If empty |{{{affiliation|}}} |{{{alignment|}}} }}
| label29 = Fighting style
| data29 = {{{fighting_style|}}}
| label30 = Weapon
| data30 = {{{weapon|}}}
| label31 = Family
| data31 = {{{family|}}}
| label32 = {{#if: {{{spouse|}}} | Spouse | Spouses }}
| data32 = {{If empty |{{{spouse|}}} |{{{spouses|}}} }}
| label33 = {{#if: {{{significant_other|}}} | Significant other | Significant others }}
| data33 = {{If empty |{{{significant_other|}}} |{{{significant_others|}}} }}
| label34 = Children
| data34 = {{{children|}}}
| label35 = Relatives
| data35 = {{{relatives|}}}
| label36 = Religion
| data36 = {{{religion|}}}
| label37 = {{#if: {{{origin|}}} | Origin | Home }}
| data37 = {{If empty |{{{origin|}}} |{{{home|}}} }}
| label38 = Nationality
| data38 = {{{nationality|}}}
| label39 = {{{lbl21|}}}
| data39 = {{{data21|}}}
| label40 = {{{lbl22|}}}
| data40 = {{{data22|}}}
| label41 = {{{lbl23|}}}
| data41 = {{{data23|}}}
| label42 = {{{lbl24|}}}
| data42 = {{{data24|}}}
| label43 = {{{lbl25|}}}
| data43 = {{{data25|}}}
| header50 = {{#if: {{{data31|}}} {{{data32|}}} {{{data33|}}} {{{data34|}}} {{{data35|}}} | {{{extra-hdr|}}} }}
| label51 = {{{lbl31|}}}
| data51 = {{{data31|}}}
| label52 = {{{lbl32|}}}
| data52 = {{{data32|}}}
| label53 = {{{lbl33|}}}
| data53 = {{{data33|}}}
| label54 = {{{lbl34|}}}
| data54 = {{{data34|}}}
| label55 = {{{lbl35|}}}
| data55 = {{{data35|}}}
}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
3ce93cfa3dfb9b4b9608b850f3d4e6ac282b3bc9
Thunder, Ice, and Everything Nice Wiki
0
2
240
12
2023-11-02T21:05:57Z
Gingerdanger
2
wikitext
text/x-wiki
<mainpage-leftcolumn-start />
<div style="text-align: center; font-size: x-large; padding: 1em;">'''Welcome to the {{SITENAME}}!'''</div>
In a little town on the Sword Coast, a group of strangers took a quest to earn some cash.
How strange to think they would go on to kill a dragon, aid a would-be prince, and fall into the lands of the Fey. Strange happenings surround these adventurers, and threaten to snare them in a web of ice and magic.
==Important articles==
<gallery position="center" captionalign="center" navigation="true">
File:Celtic Boar.jpeg|link=The Banes of Thunder|[[The Banes of Thunder]]
File:Placeholder|link=A Crucial Item| [[The Crown of Neverwinter]]
File:Sword Coast.png|link=The Sword Coast| [[The Sword Coast]]
File:Placeholder|link=A Main Character| [[Neverwinter]]
File:Placeholder|link=An Important Location| [[The Feywild]]
File:Placeholder|link=A Key Event| [[Courts of the Fey]]
</gallery>
<!-- The gallery above works well for individual articles, but it would also be good to have another below it that points to important Category: pages. -->
<mainpage-endcolumn />
8e981f573f37c9666f17adc0205a04eeffb6d816
Template:Infobox
10
178
244
2023-11-02T21:16:33Z
Gingerdanger
2
Created page with "{{#invoke:Infobox|infobox}}<noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
{{#invoke:Infobox|infobox}}<noinclude>
{{documentation}}
</noinclude>
627ee6fcf4d4f108fe054b5c476201cad0ed7717
576
244
2023-11-02T21:46:29Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
{{#invoke:Infobox|infobox}}<noinclude>
{{documentation}}
</noinclude>
627ee6fcf4d4f108fe054b5c476201cad0ed7717
Template:Infobox/doc
10
343
578
577
2023-11-02T21:46:29Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
{{Documentation subpage}}
This template is intended as a meta template: a template used for constructing other templates. '''Note''': In general, it is not meant for use directly in an article, but can be used on a one-off basis if required. [[w:Help:Infobox]] contains an introduction about the recommended content and design of infoboxes.
== Usage ==
Usage is similar to {{tl|navbox}}, but with an additional distinction. Each row on the table can contain either a header, or a label/data pair, or just a data cell. These are mutually exclusive states so if you define a row with both a header and a label/data pair, the label/data pair is ignored.
To insert an image somewhere other than at the top of the infobox, or to insert freeform data, use a row with only a data field.
== Optional control parameters ==
; name : If this parameter is present, "view/talk/edit" links will be added to the bottom of the infobox, pointing to the named page. You may use the value <nowiki>{{subst:PAGENAME}}</nowiki>; however this is rarely what you want, because it will send users clicking these links in an infobox in an article to the template code rather than the data in the infobox that they probably want to change.
; child : See the [[#Embedding|Embedding]] section for details. If this is set to "yes", this child infobox should be titled but have no name parameter. This parameter is empty by default, set it to "yes" to activate it.
; subbox : See the [[#Subboxes|Subboxes]] section for details. If this is set to "yes", this subbox should be titled but have no name parameter. This parameter is empty by default, set to "yes" to activate it. It has no effect if the '''child''' parameter is also set to "yes".
; decat : If this is set to "yes", the current page will not be autocategorized in a maintenance category when the generated infobox has some problems or no visible data section. Leave empty by default or set to "yes" to activate it.
== Content parameters ==
=== Title ===
There are two different ways to put a title on an infobox. One contains the title inside the infobox's border in the uppermost cell of the table, the other puts as a caption it on top of the table. You can use both of them together if you like, or just one or the other, or even neither (though this is not recommended):
; title : Text to put in the caption over the top of the table (or as section header before the whole content of this table, if this is a child infobox). For accessibility reasons, this is the most recommended alternative.
; above : Text to put within the uppermost cell of the table.
; subheader(n) : additional title fields which fit below {{{title}}} and {{{above}}}, but before images.
Examples:
{{Infobox
| name = Infobox/doc
| title = Text in caption over infobox
| subheader = Subheader of the infobox
| header = (the rest of the infobox goes here)
}}
<pre style="overflow:auto">
{{Infobox
| name = {{subst:PAGENAME}}
| title = Text in caption over infobox
| subheader = Subheader of the infobox
| header = (the rest of the infobox goes here)
}}
</pre>{{clear}}
{{Infobox
| name = Infobox/doc
| above = Text in uppermost cell of infobox
| subheader = Subheader of the infobox
| subheader2 = Second subheader of the infobox
| header = (the rest of the infobox goes here)
}}
<pre style="overflow:auto">
{{Infobox
| name = {{subst:PAGENAME}}
| above = Text in uppermost cell of infobox
| subheader = Subheader of the infobox
| subheader2 = Second subheader of the infobox
| header = (the rest of the infobox goes here)
}}
</pre>{{clear}}
=== Illustration images ===
; image(n) : images to display at the top of the template. Use full image syntax, for example <nowiki>[[File:example.png|200px|alt=Example alt text]]</nowiki>. Image is centered by default.
; caption(n) : Text to put underneath the images.
=== Main data ===
; header(n) : Text to use as a header in row n.
; label(n) : Text to use as a label in row n.
; data(n) : Text to display as data in row n.
Note: for any given value for (n), not all combinations of parameters are permitted. The presence of a header''(n)'' parameter will cause the corresponding data''(n)'' (and rowclass''(n)'' label''(n)'', see below) parameters to be ignored; the absence of a data''(n)'' parameters will cause the corresponding label''(n)'' parameters to be ignored. Valid combinations for any single row are:
* |class''(n)''= |header''(n)''=
* |rowclass''(n)'= |class''(n)''= |data''(n)''=
* |rowclass''(n)''= |label''(n)''= |class''(n)''= data''(n)''=
See the rendering of header4, label4, and data4 in the [[#Examples|Examples]] section below.
==== Number ranges ====
To allow flexibility when the layout of an infobox is changed, it may be helpful when developing an infobox to use non-contiguous numbers for header and label/data rows. Parameters for new rows can then be inserted in future without having to renumber existing parameters. For example:
<pre style="overflow:auto">
| header3 = Section 1
| label5 = Label A
| data5 = Data A
| label7 = Label C
| data7 = Data C
| header10 = Section 2
| label12 = Label D
| data12 = Data D
</pre>{{clear}}
==== Making data fields optional ====
A row with a label but no data is not displayed. This allows for the easy creation of optional infobox content rows. To make a row optional use a parameter that defaults to an empty string, like so:
<pre style="overflow:auto">
| label5 = Population
| data5 = {{{population|}}}
</pre>{{clear}}
This way if an article doesn't define the population parameter in its infobox the row won't be displayed.
For more complex fields with pre-formatted contents that would still be present even if the parameter wasn't set, you can wrap it all in an "#if" statement to make the whole thing vanish when the parameter is not used. For instance, the "#if" statement in the following example reads "#if:the parameter ''mass'' has been supplied |then display it, followed by 'kg'":
<pre style="overflow:auto">
| label6 = Mass
| data6 = {{ #if: {{{mass|}}} | {{{mass}}} kg }}
</pre>{{clear}}
For more on #if, see [[mw:Help:Extension:ParserFunctions##if|here]].
==== Hiding headers when all data fields are hidden ====
You can also make headers optional in a similar way. Consider this example:
{{Infobox
| title = Example of an undesirable header
| header1 = Undesirable header
| label2 = Item 1 | data2 =
| label3 = Item 2 | data3 =
| label4 = Item 3 | data4 =
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
<pre style="overflow:auto">
{{Infobox
| title = Example of an undesirable header
| header1 = Undesirable header
| label2 = Item 1 | data2 =
| label3 = Item 2 | data3 =
| label4 = Item 3 | data4 =
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
</pre>{{clear}}
If you want the first header to appear only if one or more of the data fields that fall under it are filled, one could use the following pattern as an example of how to do it:
{{Infobox
| title = Example of an optional header
| header1 = {{ #if: {{{item1|}}}{{{item2|}}}{{{item3|}}} | Optional header }}
| label2 = Item 1 | data2 = {{{item1|}}}
| label3 = Item 2 | data3 = {{{item2|}}}
| label4 = Item 3 | data4 = {{{item3|}}}
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
<pre style="overflow:auto">
{{Infobox
| title = Example of an optional header
| header1 = {{ #if: {{{item1|}}}{{{item2|}}}{{{item3|}}} | Optional header }}
| label2 = Item 1 | data2 = {{{item1|}}}
| label3 = Item 2 | data3 = {{{item2|}}}
| label4 = Item 3 | data4 = {{{item3|}}}
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
</pre>{{clear}}
header1 will be shown if any of item1, item2, or item3 is defined. If none of the three parameters are defined the header won't be shown and no empty row appears before the next static content. The trick to this is that the "#if" returns false only if there is nothing whatsoever in the conditional section, so only if all three of item1, item2 and item3 are undefined will the if statement fail.
Note that such trick may be sometimes very complex to test if there are many data items whose value depends on complex tests (or when a data row is generated by a recursive invocation of this template as a [[#Subboxes|subbox]]). Ideally, the Lua module supporting this template should now support a new way to make each header row autohideable by detecting if there is at least one non-empty data row after that header row (a parameter like "autohide header1 = yes", for example, would remove the need to perform the "#if" test so that we can just to define "header1 = Optional header"),
=== Footer ===
; below : Text to put in the bottom cell. The bottom cell is intended for footnotes, see-also, and other such information.
== Presentation parameters ==
=== Italic titles ===
Titles of articles with infoboxes may be made italic by passing the <code>italic title</code> parameter.
* Turn on italic titles by passing |italic title=<nowiki>{{{italic title|}}}</nowiki> from the infobox.
* Turn off by default (notably because only Latin script may be safely rendered in this style and italic may be needed to distinguish foreign language from local English language only in that script, but would be difficult to read for other scripts) but allow some instances to be made italic by passing |italic title=<nowiki>{{{italic title|no}}}</nowiki>
* Do not make any titles italic by not passing the parameter at all.
=== CSS styling ===
; bodystyle : Applies to the infobox table as a whole
; titlestyle : Applies only to the title caption. Adding a background color is usually inadvisable since the text is rendered "outside" the infobox.
; abovestyle : Applies only to the "above" cell at the top. The default style has font-size:125%; since this cell is usually used for a title, if you want to use the above cell for regular-sized text include "font-size:100%;" in the abovestyle.
; imagestyle : Applies to the cell the image is in. This includes the text of the image caption, but you should set text properties with captionstyle instead of imagestyle in case the caption is moved out of this cell in the future.
; captionstyle : Applies to the text of the image caption.
; rowstyle(n) : This parameter is inserted into the <code>style</code> attribute for the specified row.
; headerstyle : Applies to all header cells
; labelstyle : Applies to all label cells
; datastyle : Applies to all data cells
; belowstyle : Applies only to the below cell
=== HTML classes and microformats ===
; bodyclass : This parameter is inserted into the <code>class</code> attribute for the infobox as a whole.
; titleclass : This parameter is inserted into the <code>class</code> attribute for the infobox's '''title''' caption.
<!-- currently not implemented in Lua module
; aboverowclass : This parameter is inserted into the <code>class</code> attribute for the complete table row the '''above''' cell is on.
-->
; aboveclass : This parameter is inserted into the <code>class</code> attribute for the infobox's '''above''' cell.
; subheaderrowclass(n) : This parameter is inserted into the <code>class</code> attribute for the complete table row the '''subheader''' is on.
; subheaderclass(n) : This parameter is inserted into the <code>class</code> attribute for the infobox's '''subheader'''.
; imagerowclass(n) : These parameters are inserted into the <code>class</code> attribute for the complete table row their respective '''image''' is on.
; imageclass : This parameter is inserted into the <code>class</code> attribute for the '''image'''.
; rowclass(n) : This parameter is inserted into the <code>class</code> attribute for the specified row including the '''label''' and '''data''' cells.
; class(n) : This parameter is inserted into the <code>class</code> attribute for the '''data''' cell of the specified row. If there's no '''data''' cell it has no effect.
<!-- currently not implemented in Lua module
; belowrowclass : This parameter is inserted into the <code>class</code> attribute for the complete table row the '''below''' cell is on.
-->
; belowclass : This parameter is inserted into the <code>class</code> attribute for the infobox's '''below''' cell.
This template supports the addition of microformat information. This is done by adding "class" attributes to various data cells, indicating what kind of information is contained within. Multiple class names may be specified, separated by spaces, some of them being used as selectors for custom styling according to a project policy or to the skin selected in user preferences, others beig used for microformats.
To flag an infobox as containing [[w:hCard|hCard]] information, for example, add the following parameter:
<pre style="overflow:auto">
| bodyclass = vcard
</pre>{{clear}}
And for each row containing a data cell that's part of the vcard, add a corresponding class parameter:
<pre style="overflow:auto">
| class1 = fn
| class2 = org
| class3 = tel
</pre>{{clear}}
...and so forth. "above" and "title" can also be given classes, since these are usually used to display the name of the subject of the infobox.
See [[w:microformat]] for more information on microformats in general.
== Examples ==
Notice how the row doesn't appear in the displayed infobox when a '''label''' is defined without an accompanying '''data''' cell, and how all of them are displayed when a '''header''' is defined on the same row as a '''data''' cell. Also notice that '''subheaders''' are not bold by default like the '''headers''' used to split the main data section, because this role is meant to be for the '''above''' cell :
{{Infobox
|name = Infobox/doc
|bodystyle =
|titlestyle =
|abovestyle = background:#cfc;
|subheaderstyle =
|title = Test Infobox
|above = Above text
|subheader = Subheader above image
|subheader2 = Second subheader
|imagestyle =
|captionstyle =
|image = [[File:Example-serious.jpg|200px|alt=Example alt text]]
|caption = Caption displayed below File:Example-serious.jpg
|headerstyle = background:#ccf;
|labelstyle = background:#ddf;
|datastyle =
|header1 = Header defined alone
| label1 =
| data1 =
|header2 =
| label2 = Label defined alone does not display (needs data, or is suppressed)
| data2 =
|header3 =
| label3 =
| data3 = Data defined alone
|header4 = All three defined (header, label, data, all with same number)
| label4 = does not display (same number as a header)
| data4 = does not display (same number as a header)
|header5 =
| label5 = Label and data defined (label)
| data5 = Label and data defined (data)
|belowstyle = background:#ddf;
|below = Below text
}}
<pre style="overflow:auto">
{{Infobox
|name = {{subst:PAGENAME}}
|bodystyle =
|titlestyle =
|abovestyle = background:#cfc;
|subheaderstyle =
|title = Test Infobox
|above = Above text
|subheader = Subheader above image
|subheader2 = Second subheader
|imagestyle =
|captionstyle =
| image = [[File:Example-serious.jpg|200px|alt=Example alt text]]
|caption = Caption displayed below Example-serious.jpg
|headerstyle = background:#ccf;
|labelstyle = background:#ddf;
|datastyle =
|header1 = Header defined alone
| label1 =
| data1 =
|header2 =
| label2 = Label defined alone does not display (needs data, or is suppressed)
| data2 =
|header3 =
| label3 =
| data3 = Data defined alone
|header4 = All three defined (header, label, data, all with same number)
| label4 = does not display (same number as a header)
| data4 = does not display (same number as a header)
|header5 =
| label5 = Label and data defined (label)
| data5 = Label and data defined (data)
|belowstyle = background:#ddf;
|below = Below text
}}
</pre>{{clear}}
For this example, the '''bodystyle''' and '''labelstyle''' parameters are used to adjust the infobox width and define a default width for the column of labels:
{{Infobox
|name = Infobox/doc
|bodystyle = width:20em
|titlestyle =
|title = Test Infobox
|headerstyle =
|labelstyle = width:33%
|datastyle =
|header1 =
| label1 = Label 1
| data1 = Data 1
|header2 =
| label2 = Label 2
| data2 = Data 2
|header3 =
| label3 = Label 3
| data3 = Data 3
|header4 = Header 4
| label4 =
| data4 =
|header5 =
| label5 = Label 5
| data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|belowstyle =
|below = Below text
}}
<pre style="overflow: auto">
{{Infobox
|name = {{subst:PAGENAME}}
|bodystyle = width:20em
|titlestyle =
|title = Test Infobox
|headerstyle =
|labelstyle = width:33%
|datastyle =
|header1 =
| label1 = Label 1
| data1 = Data 1
|header2 =
| label2 = Label 2
| data2 = Data 2
|header3 =
| label3 = Label 3
| data3 = Data 3
|header4 = Header 4
| label4 =
| data4 =
|header5 =
| label5 = Label 5
| data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|belowstyle =
|below = Below text
}}
</pre>{{clear}}
== Embedding ==
One infobox template can be embedded into another using the |child= parameter or the |embed= parameter. This feature can be used to create a modular infobox, or to create better-defined logical sections. Long ago, it was necessary to use embedding in order to create infoboxes with more than 99 rows; but nowadays there's no limit to the number of rows that can be defined in a single instance of <code><nowiki>{{infobox}}</nowiki></code>.
{{Infobox
| title = Top level title
| data1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| data2 = {{Infobox | decat = yes | child = yes
|title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
<pre style="overflow:auto">
{{Infobox
| title = Top level title
| data1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| data2 = {{Infobox | decat = yes | child = yes
|title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
</pre>{{clear}}
Note, in the examples above, the child infobox is placed in a <code>data</code> field, not a <code>header</code> field. Notice that the section subheadings are not in bold font if bolding is not explicitly specified. To obtain bold section headings, place the child infobox in a '''header''' field (but not in a '''label''' field because it would not be displayed!), either using
{{Infobox
| title = Top level title
| header1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| header2 = {{Infobox | decat = yes | child = yes
| title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
<pre style="overflow:auto">
{{Infobox
| title = Top level title
| header1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| header2 = {{Infobox | decat = yes | child = yes
| title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
</pre>{{clear}}
or,
{{Infobox
| title = Top level title
| header1 = First subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 1.1
| data1 = Data 1.1
}}
| header2 = Second subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
<pre style="overflow:auto">
{{Infobox
| title = Top level title
| header1 = First subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 1.1
| data1 = Data 1.1
}}
| header2 = Second subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
</pre>{{clear}}
Note that omitting the |title= parameter, and not including any text preceding the embedded infobox, may result in spurious blank table rows, creating gaps in the visual presentation.
== Subboxes ==
An alternative method for embedding is to use |subbox=yes, which removes the outer border from the infobox, but preserves the interior structure. One feature of this approach is that the parent and child boxes need not have the same structure, and the label and data fields are not aligned between the parent and child boxes because they are not in the same parent table.
{{Infobox
| headerstyle = background-color:#eee;
| labelstyle = background-color:#eee;
| header1 = Main 1
| header2 = Main 2
| data3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| data4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| label5 = Label 5 | data5 = Data 5
| header6 = Main 6
}}
<source lang="sass" style="overflow:auto">
{{Infobox
| headerstyle = background-color:#eee;
| labelstyle = background-color:#eee;
| header1 = Main 1
| header2 = Main 2
| data3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| data4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| label5 = Label 5 | data5 = Data 5
| header6 = Main 6
}}
</source>{{clear}}
Note that the default padding of the parent data cell containing each subbox is still visible, so the subboxes are slightly narrower than the parent box and there's a higher vertical spacing between standard cells of the parent box than between cells of distinct subboxes.
== Full blank syntax ==
(Note: there is no limit to the number of possible rows; only 20 are given below since infoboxes larger than that will be relatively rare. Just extend the numbering as needed. The microformat "class" parameters are also omitted as they are not commonly used.)
<pre style="overflow:auto">
{{Infobox
| name = {{subst:PAGENAME}}
| child = {{{child|}}}
| subbox = {{{subbox|}}}
| italic title = {{{italic title|no}}}
| bodystyle =
| titlestyle =
| abovestyle =
| subheaderstyle =
| title =
| above =
| subheader =
| imagestyle =
| captionstyle =
| image =
| caption =
| image2 =
| caption2 =
| headerstyle =
| labelstyle =
| datastyle =
| header1 =
| label1 =
| data1 =
| header2 =
| label2 =
| data2 =
| header3 =
| label3 =
| data3 =
| header4 =
| label4 =
| data4 =
| header5 =
| label5 =
| data5 =
| header6 =
| label6 =
| data6 =
| header7 =
| label7 =
| data7 =
| header8 =
| label8 =
| data8 =
| header9 =
| label9 =
| data9 =
| header10 =
| label10 =
| data10 =
| header11 =
| label11 =
| data11 =
| header12 =
| label12 =
| data12 =
| header13 =
| label13 =
| data13 =
| header14 =
| label14 =
| data14 =
| header15 =
| label15 =
| data15 =
| header16 =
| label16 =
| data16 =
| header17 =
| label17 =
| data17 =
| header18 =
| label18 =
| data18 =
| header19 =
| label19 =
| data19 =
| header20 =
| label20 =
| data20 =
| belowstyle =
| below =
}}
</pre>{{clear}}
==See also==
* [[Module:Infobox]], the [[mw:Lua/Overview|Lua]] module on which this template is based
* [[w:Wikipedia:List of infoboxes|List of infoboxes]]
38686ab37d436b2158042649ea6e552897fbcfa5
Template:Infobox Miraheze user
10
344
580
579
2023-11-02T21:46:30Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
{{Infobox
| bodyclass = vcard
| bodystyle = {{#if:{{{fontcolor|}}}|color: {{{fontcolor}}};}} {{#if:{{{width|}}}|width: {{{width}}};}} {{#if:{{{tablecolor|}}}|background-color: {{{tablecolor}}}}}
| headerstyle = {{#if:{{{color|}}}|background-color: {{{color}}}}}; {{#if:{{{headerfontcolor|}}}|color: {{{headerfontcolor}}}}}
| abovestyle = {{#if:{{{abovecolor|}}}|background-color: {{{abovecolor}}}|}}; {{#if:{{{abovefontcolor|}}}|color: {{{abovefontcolor}}}|}}
| title = <includeonly>{{#if:{{{abovefontcolor|}}}||{{{title|{{BASEPAGENAME}}}}} {{#if:{{{status|}}}|<br /><small>{{{status}}}</small>}}}}</includeonly>
| above = {{#if:{{{abovefontcolor|}}}|{{{title|{{BASEPAGENAME}}}}} {{#if:{{{status|}}}|<br /><small>{{{status}}}</small>}}}}
| subheader = — <span class="role">{{#if:{{{role|}}}|{{{role}}}|[[:metawiki:|Mirahezian]]}}</span> {{#switch:{{lc:{{{gender|{{Gender:{{#titleparts:{{BASEPAGENAME}}|1}}|m|f|NONE}}}}}}}|male|m=<abbr class="gender" style="font-size: larger;" title="<nowiki>male</nowiki>">♂</abbr>[[Category:Male Mirahezians]] |female|f=<abbr class="gender" style="font-size: larger;" title="<nowiki>female</nowiki>">♀</abbr>[[Category:Female Mirahezians]] |other|o=<abbr class="gender" title="<nowiki>other gender</nowiki>"><span style="line-height: 12px;">[[File:Gendersign.svg|x12px|alt=other gender|link=]]</span></abbr> ||none=|#default=<span style="line-height: 12px;">[[File:Gendersign.svg|x12px|alt={{{gender}}}|link=]]</span></abbr> }}
| image = {{#if:{{{image|}}}|[[File:{{{image|}}}|{{{image_width|238px}}}|{{{image_caption|}}}]]}}
| caption = {{{image_caption|}}}
| label1 = Name
| data1 = {{#if:{{{honorific prefix|{{{honorific_prefix|}}}}}}|<span class="honorific-prefix">{{{honorific prefix|{{{honorific_prefix|}}}}}} </span>}}{{#if:{{{name|}}}|<includeonly><span class="fn">{{{name|}}}</span></includeonly>}}{{#if:{{{honorific suffix|{{{honorific_suffix|}}}}}}| <span class="honorific-suffix">{{{honorific suffix|{{{honorific_suffix|}}}}}}</span>}}
| label2 = Born
| data2 = {{#if:{{{birthname|{{{birth_name|}}}}}}|<span class="nickname">{{{birthname|{{{birth_name}}}}}}</span>}} {{{birthdate|{{{birth_date|}}}}}} {{#if:{{{birthplace|{{{birth_place|}}}}}}|<span class="birthplace">{{{birthplace|{{{birth_place}}}}}}</span>}}
| label3 = Name in real life
| data3 = {{{real_name|}}}
| class3 = nickname
| label4 = Gender
| data4 = {{{custom_gender|}}}
| label5 = Preferred pronoun
| data5 = {{{pronoun|}}}
| label6 = Nationality
| data6 = {{{nationality|}}}
| class6 = category
| label7 = Country
| data7 = {{ucfirst:{{{country|}}}}}
| label8 = Current location
| data8 = {{{location|}}}
| class8 = label
| label9 = Languages
| data9 = {{{languages|}}}
| class9 = category
| label10 = Time zone
| data10 = {{{timezone|}}}
| label11 = Current time
| data11 = {{{current_time|}}}
| label13 = Ethnicity
| data13 = {{{ethnicity|}}}
| class13 = category
| label14 = Race
| data14 = {{{race|}}}
| class14 = category
| label15 = Height
| data15 = {{{height|}}}
| label16 = Weight
| data16 = {{{weight|}}}
| label17 = Hair
| data17 = {{{hair|}}}
| label18 = Eyes
| data18 = {{{eyes|}}}
| label19 = [[w:Handedness|Handedness]]
| data19 = {{{handedness|}}}
| label20 = [[w:Blood type|Blood type]]
| data20 = {{{blood_type|}}}
| label21 = Sexuality
| data21 = {{{sexuality|}}}
| class21 = category
| label22 = [[w:Intelligence quotient|IQ]]
| data22 = {{{iq|}}}
| label23 = [[w:Myers–Briggs Type Indicator|Personality type]]
| data23 = {{{personality_type|}}}
| class23 = category
| label24 = {{#switch:{{lc:{{{alignment|}}}}}|lawful good|neutral good|chaotic good|lawful neutral|neutral|true neutral|chaotic neutral|lawful evil|neutral evil|chaotic evil=[[w:Alignment (Dungeons & Dragons)|Alignment]]|light side|lightside|light|jedi|dark side|darkside|dark|sith=[[w:Alignment (role-playing games)#Star Wars|Alignment]]|#default=[[w:Alignment (role-playing games)|Alignment]]}}
| data24 = {{#switch:{{lc:{{{alignment|}}}}}|lawful good|neutral good|chaotic good|lawful neutral|neutral|true neutral|chaotic neutral|lawful evil|neutral evil|chaotic evil=[[{{{alignment|}}}]]|light side|lightside|light|jedi=[[w:Force (Star Wars)|Light Side]]|dark side|darkside|dark|sith=[[w:Dark side (Star Wars)|Dark Side]]|#default={{{alignment|}}}}}
| class24 = category
| header25 = {{#if:{{{marital status|}}}{{{spouse|}}}{{{girlfriend|}}}{{{boyfriend|}}}{{{children|}}}{{{siblings|}}}{{{pets|}}}|Family and friends}}
| label26 = Marital status
| data26 = {{{marital status|}}}
| class26 = category
| label27 = Spouse
| data27 = {{{spouse|{{{partner|}}}}}}
| label28 = Girlfriend
| data28 = {{{girlfriend|}}}
| label29 = Boyfriend
| data29 = {{{boyfriend|}}}
| label30 = Children
| data30 = {{{children|}}}
| label31 = Siblings
| data31 = {{{siblings|}}}
| label32 = Parents
| data32 = {{{parents|}}}
| label33 = Pets
| data33 = {{{pets|}}}
| header34 = {{#if:{{{occupation|}}}{{{employer|}}}{{{education|}}}{{{college|}}}{{{university|}}}{{{highschool|}}}|Education and employment}}
| label35 = Occupation
| data35 = {{{occupation|}}}
| class35 = role
| label36 = Employer
| data36 = {{{employer|}}}
| class36 = org
| label37 = Education
| data37 = {{{education|}}}
| label38 = Primary school
| data38 = {{{primaryschool|}}}
| label39 = Intermediate school
| data39 = {{{intschool|}}}
| label40 = High school
| data40 = {{{highschool|}}}
| label41 = College
| data41 = {{{college|}}}
| label42 = University
| data42 = {{{university|}}}
| label43 = Classes
| data43 = {{{classes|}}}
| header44 = {{#if:{{{hobbies|}}}{{{religion|}}}{{{politics|}}}{{{aliases|}}}{{{movies|}}}{{{books|}}}|Hobbies, favourites and beliefs}}
| label45 = Hobbies
| data45 = {{{hobbies|}}}
| label46 = Religion
| data46 = {{{religion|}}}
| class46 = category
| label47 = Politics
| data47 = {{{politics|}}}
| label48 = [[w:Pseudonym|Aliases]]
| data48 = {{{aliases|}}}
| class48 = nickname
| label49 = Movies
| data49 = {{{movies|}}}
| label50 = Shows
| data50 = {{{shows|}}}
| label51 = Books
| data51 = {{{books|}}}
| header52 = {{#if:{{{interests|}}}|Interests}}
| data53 = {{#if:{{{interests|}}}|<div style="text-align: left">
{{{interests|}}}
</div>}}
| header54 = {{#if:{{{website|}}}{{{blog|}}}{{{email|}}}{{{icq|}}}{{{aim|}}}{{{gtalk|}}}{{{jabber|}}}{{{skype|}}}{{{mac|}}}{{{irc|}}}{{{facebook|}}}{{{google+|}}}{{{instagram|}}}{{{linkedin|}}}{{{myspace|}}}{{{pinterest|}}}{{{twitter|}}}{{{youtube|}}}{{{flickr|}}}|Contact info}}
| label55 = Website
| data55 = {{{website|}}}
| label56 = Blog
| data56 = {{{blog|}}}
| label57 = Email
| data57 = {{{email|}}}
| label58 = [[w:ICQ|ICQ]]
| data58 = {{#if:{{{icq|}}}|[https://people.icq.com/people/about_me.php?uin={{urlencode:{{{icq}}}}} {{{icq}}}]}}
| label59 = [[w:AOL Instant Messenger|AIM]]
| data59 = {{{aim|}}}
| label60 = [[w:GTalk|GTalk]]
| data60 = {{{gtalk|}}}
| label61 = [[w:Extensible Messaging and Presence Protocol|XMPP]]
| data61 = {{{jabber|}}}
| label62 = [[w:Skype|Skype]]
| data62 = {{{skype|}}}
| label63 = .Mac
| data63 = {{{mac|}}}
| label64 = [[w:IRC|IRC]]
| data64 = {{{irc|}}}
| label65 = [[w:Facebook|Facebook]]
| data65 = {{#if:{{{facebook|}}}|[https://www.facebook.com/{{urlencode:{{{facebook}}}}} {{{facebook}}}]}}
| label67 = [[w:Instagram|Instagram]]
| data67 = {{#if:{{{instagram|}}}|[https://www.instagram.com/{{urlencode:{{{instagram}}}}} {{{instagram}}}]}}
| label68 = [[w:LinkedIn|LinkedIn]]
| data68 = {{#if:{{{linkedin|}}}|[https://www.linkedin.com/profile/view?&name={{urlencode:{{{linkedin}}}}} {{{linkedin}}}]}}
| label69 = [[w:Myspace|Myspace]]
| data69 = {{{myspace|}}}
| label70 = [[w:Pinterest|Pinterest]]
| data70 = {{{pinterest|}}}
| label71 = [[w:Twitter|Twitter]]
| data71 = {{#if:{{{twitter|}}}|[https://twitter.com/{{urlencode:{{{twitter}}}}} {{{twitter}}}]}}
| label72 = [[w:YouTube|YouTube]]
| data72 = {{#if:{{{youtube|}}}|[https://www.youtube.com/user/{{urlencode:{{{youtube}}}}} {{{youtube}}}]}}
| label73 = [[w:Flickr|Flickr]]
| data73 = {{#if:{{{flickr|}}}|[https://www.flickr.com/photos/{{urlencode:{{{flickr}}}}} {{{flickr}}}]}}
| header74 = {{#if:{{{subpages|}}}|[[Special:Prefixindex/User:{{BASEPAGENAMEE}}|{{BASEPAGENAME}} subpages]]}}
| data75 = {{#if:{{{subpages|}}}|<div style="text-align: left">
{{{subpages|}}}
</div>}}
| header76 = {{#if:{{{joined_date|}}}{{{first_edit|}}}{{{edit_count|}}}{{{permissions|}}}|Account statistics}}
| label77 = Joined
| data77 = {{{joined_date|}}}
| label78 = First edit
| data78 = {{{first_edit|}}}
| label79 = {{#if:{{{autoconfirmed|}}}|{{#if:{{{confirmed|}}}|Confirmed<br />}}Autoconfirmed|{{#if:{{{confirmed|}}}|Confirmed}}}}
| data79 = {{#if:{{{autoconfirmed|}}}|{{#if:{{{confirmed|}}}|{{{confirmed}}}<br />}}{{{autoconfirmed}}}|{{#if:{{{confirmed|}}}|{{{confirmed}}}}}}}
| label90 = Administrator
| data90 = {{{admin|}}}
| label91 = Bureaucrat
| data91 = {{{bureaucrat|}}}
| label95 = {{#if:{{{permissions|}}}|<span class="plainlinks">[{{fullurl:Special:ListUsers|limit=1&username={{ROOTPAGENAMEE}}}} Permissions]</span>}}
| data95 = {{{permissions|}}}
| label98 = Signature
| data98 = {{{signature|}}}
| data101 = {{{module|}}}
| data102 = {{{module2|}}}
| data103 = {{{module3|}}}
| header104 = {{#if:{{{userboxes|}}}|Userboxes}}
| data105 = {{#if:{{{userboxes|}}}|
<table style="background: transparent; vertical-align: middle !important; text-align: center; font-size: 95%; color: {{{fontcolor|#000000}}}; margin: auto; border-spacing: 0px; border-collapse: collapse;">
<tr><td>
{{{userboxes|}}}
</td></tr>
</table>
}}
| header106 = {{{custom_header|}}}
| data107 = {{#if:{{{custom_data|}}}|<div style="text-align: left">
{{{custom_data|}}}
</div>}}
| label111 = {{{custom_label1|}}}
| data111 = {{{custom_data1|}}}
| label112 = {{{custom_label2|}}}
| data112 = {{{custom_data2|}}}
| label113 = {{{custom_label3|}}}
| data113 = {{{custom_data3|}}}
| label114 = {{{custom_label4|}}}
| data114 = {{{custom_data4|}}}
| label115 = {{{custom_label5|}}}
| data115 = {{{custom_data5|}}}
| label116 = {{{custom_label6|}}}
| data116 = {{{custom_data6|}}}
| label117 = {{{custom_label7|}}}
| data117 = {{{custom_data7|}}}
| label118 = {{{custom_label8|}}}
| data118 = {{{custom_data8|}}}
| label119 = {{{custom_label9|}}}
| data119 = {{{custom_data9|}}}
}}<noinclude>{{Documentation}}{{En-WP attribution notice|Template:Infobox Wikipedia user}}</noinclude>
5c833d57c9e7f404beac918c3b0cae721506bd7f
Template:Infobox Miraheze user/doc
10
345
582
581
2023-11-02T21:46:31Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE. -->
== Usage ==
Copy and paste the template below. All parameters are optional. Parameter names '''must''' be in lower case.
{{Infobox Miraheze user
<!-- INFOBOX FORMATTING -------->
| abovecolor =
| color =
| fontcolor =
| abovefontcolor =
| headerfontcolor =
| tablecolor =
<!-- LEAD INFORMATION ---------->
| status = {{{status}}}
| image = Echo_thanks.svg
| image_caption = {{{image_caption}}}
| honorific_prefix = {{{honorific_prefix}}}
| name = {{{name}}}
| honorific_suffix = {{{honorific_suffix}}}
| role = {{{role}}}
| birthname = {{{birthname}}}
| real_name = {{{real_name}}}
| gender = {{{gender}}}
| custom_gender = {{{custom_gender}}}
| pronoun = {{{pronoun}}}
| languages = {{{languages}}}
| birthdate = {{{birthdate}}}
| birthplace = {{{birthplace}}}
| location = {{{location}}}
| country = {{{country}}}
| timezone = {{{timezone}}}
| current_time = {{{current_time}}}
| nationality = {{{nationality}}}
| ethnicity = {{{ethnicity}}}
| race = {{{race}}}
| height = {{{height}}}
| weight = {{{height}}}
| hair = {{{hair}}}
| eyes = {{{eyes}}}
| handedness = {{{handedness}}}
| blood_type = {{{blood_type}}}
| sexuality = {{{sexuality}}}
| iq = {{{iq}}}
| personality_type = {{{personality_type}}}
| alignment = {{{alignment}}}
<!-- FAMILY & FRIENDS ---------->
| marital status = {{{marital status}}}
| spouse = {{{spouse}}}
| girlfriend = {{{girlfriend}}}
| boyfriend = {{{boyfriend}}}
| parents = {{{parents}}}
| children = {{{children}}}
| siblings = {{{siblings}}}
| pets = {{{pets}}}
<!-- EDUCATION & EMPLOYMENT ---->
| occupation = {{{occupation}}}
| employer = {{{employer}}}
| education = {{{education}}}
| primaryschool = {{{primaryschool}}}
| intschool = {{{intschool}}}
| highschool = {{{highschool}}}
| college = {{{college}}}
| university = {{{university}}}
| classes = {{{classes}}}
<!-- INTERESTS & BELIEFS ------->
| hobbies = {{{hobbies}}}
| religion = {{{religion}}}
| politics = {{{politics}}}
| aliases = {{{aliases}}}
| movies = {{{movies}}}
| shows = {{{shows}}}
| books = {{{books}}}
| interests = {{{interests}}}
<!-- CONTACT INFO -------------->
| website = {{{website}}}
| blog = {{{blog}}}
| email = {{{email}}}
| icq = {{{icq}}}
| aim = {{{aim}}}
| gtalk = {{{gtalk}}}
| jabber = {{{jabber}}}
| skype = {{{skype}}}
| msn = {{{msn}}}
| yahoo = {{{yahoo}}}
| mac = {{{mac}}}
| irc = {{{irc}}}
| facebook = {{{facebook}}}
| google+ = {{{google+}}}
| instagram = {{{instagram}}}
| linkedin = {{{linkedin}}}
| myspace = {{{myspace}}}
| pinterest = {{{pinterest}}}
| twitter = {{{twitter}}}
| youtube = {{{youtube}}}
| flickr = {{{flickr}}}
<!-- SUBPAGES ----------------->
| subpages = {{{subpages}}}
<!-- ACCOUNT STATISTICS ------->
| joined_date = {{{joined_date}}}
| first_edit = {{{first_edit}}}
| autoconfirmed = {{{autoconfirmed}}}
| edit_count = {{{edit_count}}}
| permissions = {{{permissions}}}
| signature = {{{signature}}}
<!-- USERBOXES ---------------->
| userboxes = {{{userboxes}}}
<!-- CUSTOM FIELDS ------------>
| custom_header = {{{custom_header}}}
| custom_data = {{{custom_data}}}
| custom_label1 = {{{custom_label1}}}
| custom_data1 = {{{custom_data1}}}
| custom_label2 = {{{custom_label2}}}
| custom_data2 = {{{custom_data2}}}
| custom_label3 = {{{custom_label3}}}
| custom_data3 = {{{custom_data3}}}
| custom_label4 = {{{custom_label4}}}
| custom_data4 = {{{custom_data4}}}
| custom_label5 = {{{custom_label5}}}
| custom_data5 = {{{custom_data5}}}
| custom_label6 = {{{custom_label6}}}
| custom_data6 = {{{custom_data6}}}
| custom_label7 = {{{custom_label7}}}
| custom_data7 = {{{custom_data7}}}
| custom_label8 = {{{custom_label8}}}
| custom_data8 = {{{custom_data8}}}
| custom_label9 = {{{custom_label9}}}
| custom_data9 = {{{custom_data9}}}
}}
<pre style="overflow: auto">
{{Infobox Miraheze user
<!-- INFOBOX FORMATTING -------->
| abovecolor =
| color =
| fontcolor =
| abovefontcolor =
| headerfontcolor =
| tablecolor =
<!-- LEAD INFORMATION ---------->
| title = <!-- optional, defaults to {{BASEPAGENAME}} -->
| status =
| image =
| image_caption =
| image_width =
| name =
| birthname =
| real_name =
| gender = <!-- used to display icon at top. Supports male, female, other, or a custom value. -->
| custom_gender = <!-- used to display "Gender" field in list -->
| pronoun =
| languages =
| birthdate =
| birthplace =
| location =
| country =
| timezone =
| current_time = <!-- example for San Francisco: {{current time|UTC-8}} -->
| nationality =
| ethnicity =
| race =
| height =
| weight =
| hair =
| eyes =
| handedness =
| blood_type =
| sexuality =
| iq =
| personality_type =
| alignment =
<!-- FAMILY & FRIENDS ---------->
| marital status =
| spouse =
| girlfriend =
| boyfriend =
| children =
| siblings =
| parents =
| pets =
<!-- EDUCATION & EMPLOYMENT ---->
| occupation =
| employer =
| education =
| primaryschool =
| intschool =
| highschool =
| college =
| university =
| classes = <!-- For use with Miraheze Campus Ambassadors -->
<!-- INTERESTS & BELIEFS ------->
| hobbies =
| religion =
| politics =
| aliases =
| movies =
| shows =
| books =
| interests =
<!-- CONTACT INFO -------------->
| website = <!-- {{URL|example.com}} -->
| blog = <!-- {{URL|example.com}} -->
| email = <!-- {{no spam|account|example.com}} -->
| icq =
| aim =
| gtalk =
| jabber =
| skype =
| msn =
| yahoo =
| mac =
| irc =
| facebook =
| google+ =
| instagram =
| linkedin =
| myspace =
| pinterest =
| twitter =
| youtube =
| flickr =
<!-- SUBPAGES ----------------->
| subpages =
<!-- ACCOUNT STATISTICS ------->
| joined_date =
| first_edit =
| autoconfirmed = <!-- overrides confirmed parameter -->
| confirmed = <!-- may be used in place of autoconfirmed parameter (displays "Confirmed" as label) -->
| edit_count =
| permissions =
| signature =
<!-- USERBOXES ---------------->
| userboxes =
<!-- CUSTOM FIELDS ------------>
| custom_header =
| custom_data =
| custom_label1 =
| custom_data1 =
| custom_label2 =
| custom_data2 =
| custom_label3 =
| custom_data3 =
| custom_label4 =
| custom_data4 =
| custom_label5 =
| custom_data5 =
| custom_label6 =
| custom_data6 =
| custom_label7 =
| custom_data7 =
| custom_label8 =
| custom_data8 =
| custom_label9 =
| custom_data9 =
}}
</pre>
{{clear}}
==Example==
{{Infobox Miraheze user
| name = Miraheze user
| birthdate = January 1, 1986
| birthplace = Dearborn, MI
| country = United States
| nationality = American
| race = Caucasian
| gender = Female
| location = Houghton, MI
| eyes = Brown
| blood_type = Type O
| sexuality = Heterosexual
| iq = 136
| height = 5'8"
| weight = 116 lbs.
| timezone = Central Time Zone
| pets = 2 dogs <!-- If you are supposed to put pet names, please fix this-->
| children = 1
| marital status = Married
| occupation = Clerk
| highschool = Dearborn High School
| college = Henry Ford Community College
| hobbies = Camping, cooking
| religion = Presbyterian]]
| politics = Democrat
| movies = Forrest Grump, Avatar
| shows = Friends, The Big Bang Theory
| books = Harry Potter
| interests = History, Computers, Engineering
| joined_date = June 3, 2007
| userboxes = {{GitBox}}
}}
<!-- Please add more to the above -->
<pre style="overflow: auto">
{{Infobox Miraheze user
| name = Miraheze user
| birthdate = January 1, 1986
| birthplace = Dearborn, MI
| country = United States
| nationality = American
| race = Caucasian
| gender = Female
| location = Houghton, MI
| eyes = Brown
| blood_type = Type O
| sexuality = Heterosexual
| iq = 136
| height = 5'8"
| weight = 116 lbs.
| timezone = Central Time Zone
| pets = 2 dogs
| children = 1
| marital status = Married
| occupation = Clerk
| highschool = Dearborn High School
| college = Henry Ford Community College
| hobbies = Camping, cooking
| religion = Presbyterian]]
| politics = Democrat
| movies = Forrest Grump, Avatar
| shows = Friends, The Big Bang Theory
| books = Harry Potter
| interests = History, Computers, Engineering
| joined_date = June 3, 2021
| userboxes = {{GitBox}}
}}
</pre>
{{clear}}
== TemplateData ==
<templatedata>
{
"description": "Infobox about yourself. This template should only be used on user pages.",
"params": {
"status": {
"label": "Status"
},
"image_caption": {
"label": "Image caption"
},
"honorific_prefix": {
"label": "Honorific Prefix"
},
"name": {
"label": "Name"
},
"honorific_suffix": {
"label": "Honorific Suffix"
},
"role": {
"label": "Role"
},
"birthname": {
"label": "Birth name"
},
"real_name": {
"label": "Real name"
},
"gender": {
"label": "Gender"
},
"custom_gender": {
"label": "Custom gender"
},
"pronoun": {
"label": "Preferred pronoun"
},
"languages": {
"label": "Language"
},
"birthdate": {
"label": "Birthdate"
},
"birthplace": {
"label": "Birthplace"
},
"location": {
"label": "Location"
},
"country": {
"label": "Country"
},
"timezone": {
"label": "Timezone"
},
"current_time": {
"label": "Current Time"
},
"nationality": {
"label": "Nationality"
},
"ethnicity": {
"label": "Ethnicity"
},
"race": {
"label": "Race"
},
"height": {
"label": "Height"
},
"weight": {
"label": "Weight"
},
"hair": {
"label": "Hair"
},
"eyes": {
"label": "Eyes"
},
"handedness": {
"label": "Handedness"
},
"blood_type": {
"label": "Blood Type"
},
"sexuality": {
"label": "Sexuality"
},
"iq": {
"label": "IQ"
},
"personality_type": {
"label": "Personality Type"
},
"alignment": {
"label": "Alignment"
},
"marital status": {
"label": "Marital Status"
},
"spouse": {
"label": "Spouse"
},
"girlfriend": {
"label": "Girlfriend"
},
"boyfriend": {
"label": "Boyfriend"
},
"parents": {
"label": "Parents"
},
"children": {
"label": "Children"
},
"siblings": {
"label": "Siblings"
},
"pets": {
"label": "Pets"
},
"occupation": {
"label": "Occupation"
},
"employer": {
"label": "Employer"
},
"education": {
"label": "Education"
},
"primaryschool": {
"label": "Primary School"
},
"intschool": {
"label": "Intermediate School"
},
"highschool": {
"label": "High School"
},
"college": {
"label": "College"
},
"university": {
"label": "University"
},
"classes": {
"label": "Classes"
},
"hobbies": {
"label": "Hobbies"
},
"religion": {
"label": "Religion"
},
"politics": {
"label": "Politics"
},
"aliases": {
"label": "Aliases"
},
"movies": {
"label": "Movies"
},
"shows": {
"label": "Shows"
},
"books": {
"label": "Books"
},
"interests": {
"label": "Interests"
},
"website": {
"label": "Website"
},
"blog": {
"label": "Blog"
},
"email": {
"label": "Email"
},
"icq": {
"label": "ICQ"
},
"aim": {
"label": "AIM"
},
"gtalk": {
"label": "GTalk"
},
"jabber": {
"label": "Jabber"
},
"skype": {
"label": "Skype"
},
"msn": {
"label": "MSN"
},
"yahoo": {
"label": "Yahoo"
},
"mac": {
"label": "Mac"
},
"irc": {
"label": "IRC"
},
"facebook": {
"label": "Facebook"
},
"google+": {
"label": "Google+"
},
"instagram": {
"label": "Instagram"
},
"linkedin": {
"label": "LinkedIn"
},
"pinterest": {
"label": "Pinterest"
},
"twitter": {
"label": "Twitter"
},
"youtube": {
"label": "YouTube"
},
"flickr": {
"label": "Flickr"
},
"subpages": {
"label": "Subpages"
},
"joined_date": {
"label": "Joined Date"
},
"first_edit": {
"label": "First Edit"
},
"admin": {
"label": "Date granted sysop"
},
"bureaucrat": {
"label": "Date granted bureaucrat"
},
"edit_count": {
"label": "Edit Count"
},
"permissions": {
"label": "Permissions"
},
"signature": {
"label": "Signature"
},
"userboxes": {
"label": "User boxes"
}
}
}
</templatedata>
e5cb5aa9d7358ffc1e186b327fc6688f7a35e2dc
Template:Documentation
10
5
588
587
2023-11-02T21:46:33Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude>[[Category:Templates]]</noinclude>
9885bb4fa99bf3d5b960e73606bbb8eed3026877
Template:Documentation subpage
10
347
590
589
2023-11-02T21:46:34Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}}
| <!--(this template has been transcluded on a /doc or /{{{override}}} page)-->
</includeonly><!--
-->{{#ifeq:{{{doc-notice|show}}} |show
| {{Mbox
| type = notice
| style = margin-bottom:1.0em;
| image = [[File:Edit-copy green.svg|40px|alt=|link=]]
| text =
'''This is a documentation subpage''' for '''{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}'''.<br/> It contains usage information, [[mw:Help:Categories|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} | page}}}}.
}}
}}<!--
-->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!--
-->{{#if:{{{inhibit|}}} |<!--(don't categorize)-->
| <includeonly><!--
-->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}
| [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]]
| [[Category:Documentation subpages without corresponding pages]]
}}<!--
--></includeonly>
}}<!--
(completing initial #ifeq: at start of template:)
--><includeonly>
| <!--(this template has not been transcluded on a /doc or /{{{override}}} page)-->
}}<!--
--></includeonly><noinclude>{{Documentation}}</noinclude>
471e685c1c643a5c6272e20e49824fffebad0448
Module:Arguments
828
348
592
591
2023-11-02T21:46:34Z
Gingerdanger
2
1 revision imported
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
3134ecce8429b810d445e29eae115e2ae4c36c53
Module:Documentation
828
349
594
593
2023-11-02T21:46:35Z
Gingerdanger
2
1 revision imported
Scribunto
text/plain
-- This module implements {{documentation}}.
-- Get required modules.
local getArgs = require('Module:Arguments').getArgs
-- Get the config table.
local cfg = mw.loadData('Module:Documentation/config')
local p = {}
-- Often-used functions.
local ugsub = mw.ustring.gsub
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end
return ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
end
p.message = message
local function makeWikilink(page, display)
if display then
return mw.ustring.format('[[%s|%s]]', page, display)
else
return mw.ustring.format('[[%s]]', page)
end
end
p.makeWikilink = makeWikilink
local function makeCategoryLink(cat, sort)
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end
p.makeCategoryLink = makeCategoryLink
local function makeUrlLink(url, display)
return mw.ustring.format('[%s %s]', url, display)
end
p.makeUrlLink = makeUrlLink
local function makeToolbar(...)
local ret = {}
local lim = select('#', ...)
if lim < 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
-- 'documentation-toolbar'
return '<span class="' .. message('toolbar-class') .. '">('
.. table.concat(ret, ' | ') .. ')</span>'
end
p.makeToolbar = makeToolbar
----------------------------------------------------------------------------
-- Argument processing
----------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end
----------------------------------------------------------------------------
-- Entry points
----------------------------------------------------------------------------
function p.nonexistent(frame)
if mw.title.getCurrentTitle().subpageText == 'testcases' then
return frame:expandTemplate{title = 'module test cases notice'}
else
return p.main(frame)
end
end
p.main = makeInvokeFunc('_main')
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:tag('div')
-- 'documentation-container'
:addClass(message('container'))
:attr('role', 'complementary')
:attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil)
:attr('aria-label', args.heading == '' and 'Documentation' or nil)
:newline()
:tag('div')
-- 'documentation'
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
-- 'documentation-clear'
:addClass(message('clear'))
:done()
:newline()
:done()
:wikitext(p._endBox(args, env))
:done()
:wikitext(p.addTrackingCategories(env))
-- 'Module:Documentation/styles.css'
return mw.getCurrentFrame():extensionTag (
'templatestyles', '', {src=cfg['templatestyles']
}) .. tostring(root)
end
----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------
function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title
-- objects and other namespace- or path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
--
-- Data includes:
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}
-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})
function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end
function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
-- 'testcases-subpage' --> 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end
function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --> 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --> 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the
-- same as the subject namespace. However, pages in the Article, File,
-- MediaWiki or Category namespaces must have their /doc, /sandbox and
-- /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end
function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.fullUrl(
'Special:ComparePages',
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end
return env
end
----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------
p.startBox = makeInvokeFunc('_startBox')
function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content or args[1] then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end
function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --> 'view'
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'create-link-display' --> 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
if docTitle.isRedirect then
docTitle = docTitle.redirectTarget
end
local data = {}
data.title = title
data.docTitle = docTitle
-- View, display, edit, and purge links if /doc exists.
data.viewLinkDisplay = message('view-link-display')
data.editLinkDisplay = message('edit-link-display')
data.historyLinkDisplay = message('history-link-display')
data.purgeLinkDisplay = message('purge-link-display')
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
data.preload = preload
data.createLinkDisplay = message('create-link-display')
return data
end
function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create][purge] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local function escapeBrackets(s)
-- Escapes square brackets with HTML entities.
s = s:gsub('%[', '[') -- Replace square brackets with HTML entities.
s = s:gsub('%]', ']')
return s
end
local ret
local docTitle = data.docTitle
local title = data.title
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay)
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay)
ret = '[%s] [%s] [%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)
else
local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
ret = '[%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, createLink, purgeLink)
end
return ret
end
function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --> 'Template documentation'
-- 'module-namespace-heading' --> 'Module documentation'
-- 'file-namespace-heading' --> 'Summary'
-- 'other-namespaces-heading' --> 'Documentation'
-- 'testcases-create-link-display' --> 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an "other namespaces" namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
else
-- 'documentation-heading'
data.headingClass = message('main-div-heading-class')
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
-- 'mw-editsection-like plainlinks'
data.linksClass = message('start-box-link-classes')
data.links = links
end
return data
end
function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
-- 'documentation-startbox'
:addClass(message('start-box-class'))
:newline()
:tag('span')
:addClass(data.headingClass)
:attr('id', 'documentation-heading')
:cssText(data.headingStyleText)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end
----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------
p.content = makeInvokeFunc('_content')
function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that "=== Headings ===" at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end
p.contentTitle = makeInvokeFunc('_contentTitle')
function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end
----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------
p.endBox = makeInvokeFunc('_endBox')
function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end
-- Assemble the link box.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]."
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />'
if not args.content and not args[1] then
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
end
end
local box = mw.html.create('div')
-- 'documentation-metadata'
box:attr('role', 'note')
:addClass(message('end-box-class'))
-- 'plainlinks'
:addClass(message('end-box-plainlinks'))
:wikitext(text)
:done()
return '\n' .. tostring(box)
end
function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)".
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Help:Transclusion|transcluded]] from $1.'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --> 'create'
-- 'create-module-doc-blurb' -->
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editUrl = docTitle:fullUrl{action = 'edit'}
local editDisplay = message('edit-link-display')
local editLink = makeUrlLink(editUrl, editDisplay)
local historyUrl = docTitle:fullUrl{action = 'history'}
local historyDisplay = message('history-link-display')
local historyLink = makeUrlLink(historyUrl, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '<br />'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '<br />'
end
return ret
end
function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --> 'sandbox'
-- 'sandbox-edit-link-display' --> 'edit'
-- 'compare-link-display' --> 'diff'
-- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --> 'create'
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
-- 'mirror-link-display' --> 'mirror'
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
-- 'sandbox-link-display' --> 'sandbox'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display'--> 'edit'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --> 'create'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display' --> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'}
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end
function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text "Please add categories to the /doc subpage."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --> '/doc'
-- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end
function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the "Subpages of this template" link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --> 'template'
-- 'module-pagetype' --> 'module'
-- 'default-pagetype' --> 'page'
-- 'subpages-link-display' --> 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end
----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------
function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --> true
-- 'doc-subpage' --> 'doc'
-- 'testcases-subpage' --> 'testcases'
-- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end
return p
78cc3a78f2b5dbb267fa16027c0800a22dbd3c42
Module:Documentation/config
828
350
596
595
2023-11-02T21:46:35Z
Gingerdanger
2
1 revision imported
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Template documentation'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Module documentation'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Summary'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documentation'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'view'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edit'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'history'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purge'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'The above [[w:Wikipedia:Template documentation|documentation]] is [[mw:Help:Transclusion|transcluded]] from $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[mw:Extension:Scribunto/Lua reference manual|Scribunto module]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages."
cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'sandbox'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'sandbox'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edit'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'create'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'diff'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Create sandbox version of $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirror'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/mirror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'testcases'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'testcases'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edit'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'run'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Add categories to the $1 subpage.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Subpages of this $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'template'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'module'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'page'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['templatestyles']
-- The name of the TemplateStyles page where CSS is kept.
-- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed.
cfg['templatestyles'] = 'Module:Documentation/styles.css'
-- cfg['container']
-- Class which can be used to set flex or grid CSS on the
-- two child divs documentation and documentation-metadata
cfg['container'] = 'documentation-container'
-- cfg['main-div-classes']
-- Classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'documentation'
-- cfg['main-div-heading-class']
-- Class for the main heading for templates and modules and assoc. talk spaces
cfg['main-div-heading-class'] = 'documentation-heading'
-- cfg['start-box-class']
-- Class for the start box
cfg['start-box-class'] = 'documentation-startbox'
-- cfg['start-box-link-classes']
-- Classes used for the [view][edit][history] or [create] links in the start box.
-- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]]
cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks'
-- cfg['end-box-class']
-- Class for the end box.
cfg['end-box-class'] = 'documentation-metadata'
-- cfg['end-box-plainlinks']
-- Plainlinks
cfg['end-box-plainlinks'] = 'plainlinks'
-- cfg['toolbar-class']
-- Class added for toolbar links.
cfg['toolbar-class'] = 'documentation-toolbar'
-- cfg['clear']
-- Just used to clear things.
cfg['clear'] = 'documentation-clear'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
d70e8b1402a2bbe08a1fef4b75d743e661af0c95
Template:Template link
10
352
600
599
2023-11-02T21:46:37Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
{{[[Template:{{{1}}}|{{{1}}}]]}}<noinclude>{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
eabbec62efe3044a98ebb3ce9e7d4d43c222351d
Template:Tl
10
353
602
601
2023-11-02T21:46:37Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Template:Template link]]
fb9a6b420e13178e581af6e7d64274cd30a79017
Template:Clear
10
84
604
95
2023-11-02T21:46:38Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
<includeonly><div style="clear:{{{1|both}}}"></div></includeonly><noinclude>
{{documentation}}</noinclude>
02f4c0e17d50c41f902cad74e6d937f585ba4719
Module:Infobox
828
354
606
605
2023-11-02T21:46:38Z
Gingerdanger
2
1 revision imported
Scribunto
text/plain
--
-- This module implements {{Infobox}}
--
local p = {}
local args = {}
local origArgs = {}
local root
local function notempty( s ) return s and s:match( '%S' ) end
local function fixChildBoxes(sval, tt)
if notempty(sval) then
local marker = '<span class=special_infobox_marker>'
local s = sval
s = mw.ustring.gsub(s, '(<%s*[Tt][Rr])', marker .. '%1')
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>)', '%1' .. marker)
if s:match(marker) then
s = mw.ustring.gsub(s, marker .. '%s*' .. marker, '')
s = mw.ustring.gsub(s, '([\r\n]|-[^\r\n]*[\r\n])%s*' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '%s*([\r\n]|-)', '%1')
s = mw.ustring.gsub(s, '(</[Cc][Aa][Pp][Tt][Ii][Oo][Nn]%s*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '(<%s*[Tt][Aa][Bb][Ll][Ee][^<>]*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '^(%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '([\r\n]%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '(%s*</[Tt][Aa][Bb][Ll][Ee]%s*>)', '%1')
s = mw.ustring.gsub(s, marker .. '(%s*\n|%})', '%1')
end
if s:match(marker) then
local subcells = mw.text.split(s, marker)
s = ''
for k = 1, #subcells do
if k == 1 then
s = s .. subcells[k] .. '</' .. tt .. '></tr>'
elseif k == #subcells then
local rowstyle = ' style="display:none"'
if notempty(subcells[k]) then rowstyle = '' end
s = s .. '<tr' .. rowstyle ..'><' .. tt .. ' colspan=2>\n' .. subcells[k]
elseif notempty(subcells[k]) then
if (k % 2) == 0 then
s = s .. subcells[k]
else
s = s .. '<tr><' .. tt .. ' colspan=2>\n' .. subcells[k] .. '</' .. tt .. '></tr>'
end
end
end
end
-- the next two lines add a newline at the end of lists for the PHP parser
-- https://en.wikipedia.org/w/index.php?title=Template_talk:Infobox_musical_artist&oldid=849054481
-- remove when [[:phab:T191516]] is fixed or OBE
s = mw.ustring.gsub(s, '([\r\n][%*#;:][^\r\n]*)$', '%1\n')
s = mw.ustring.gsub(s, '^([%*#;:][^\r\n]*)$', '%1\n')
s = mw.ustring.gsub(s, '^([%*#;:])', '\n%1')
s = mw.ustring.gsub(s, '^(%{%|)', '\n%1')
return s
else
return sval
end
end
local function union(t1, t2)
-- Returns the union of the values of two tables, as a sequence.
local vals = {}
for k, v in pairs(t1) do
vals[v] = true
end
for k, v in pairs(t2) do
vals[v] = true
end
local ret = {}
for k, v in pairs(vals) do
table.insert(ret, k)
end
return ret
end
local function getArgNums(prefix)
-- Returns a table containing the numbers of the arguments that exist
-- for the specified prefix. For example, if the prefix was 'data', and
-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}.
local nums = {}
for k, v in pairs(args) do
local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
if num then table.insert(nums, tonumber(num)) end
end
table.sort(nums)
return nums
end
local function addRow(rowArgs)
-- Adds a row to the infobox, with either a header cell
-- or a label/data cell combination.
if rowArgs.header and rowArgs.header ~= '_BLANK_' then
root
:tag('tr')
:addClass(rowArgs.rowclass)
:cssText(rowArgs.rowstyle)
:attr('id', rowArgs.rowid)
:tag('th')
:attr('colspan', 2)
:attr('id', rowArgs.headerid)
:addClass(rowArgs.class)
:addClass(args.headerclass)
:css('text-align', 'center')
:cssText(args.headerstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(fixChildBoxes(rowArgs.header, 'th'))
elseif rowArgs.data then
if not rowArgs.data:gsub('%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*]]', ''):match('^%S') then
rowArgs.rowstyle = 'display:none'
end
local row = root:tag('tr')
row:addClass(rowArgs.rowclass)
row:cssText(rowArgs.rowstyle)
row:attr('id', rowArgs.rowid)
if rowArgs.label then
row
:tag('th')
:attr('scope', 'row')
:attr('id', rowArgs.labelid)
:cssText(args.labelstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(rowArgs.label)
:done()
end
local dataCell = row:tag('td')
if not rowArgs.label then
dataCell
:attr('colspan', 2)
:css('text-align', 'center')
end
dataCell
:attr('id', rowArgs.dataid)
:addClass(rowArgs.class)
:cssText(rowArgs.datastyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(fixChildBoxes(rowArgs.data, 'td'))
end
end
local function renderTitle()
if not args.title then return end
root
:tag('caption')
:addClass(args.titleclass)
:cssText(args.titlestyle)
:wikitext(args.title)
end
local function renderAboveRow()
if not args.above then return end
root
:tag('tr')
:tag('th')
:attr('colspan', 2)
:addClass(args.aboveclass)
:css('text-align', 'center')
:css('font-size', '125%')
:css('font-weight', 'bold')
:cssText(args.abovestyle)
:wikitext(fixChildBoxes(args.above,'th'))
end
local function renderBelowRow()
if not args.below then return end
root
:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass(args.belowclass)
:css('text-align', 'center')
:cssText(args.belowstyle)
:wikitext(fixChildBoxes(args.below,'td'))
end
local function renderSubheaders()
if args.subheader then
args.subheader1 = args.subheader
end
if args.subheaderrowclass then
args.subheaderrowclass1 = args.subheaderrowclass
end
local subheadernums = getArgNums('subheader')
for k, num in ipairs(subheadernums) do
addRow({
data = args['subheader' .. tostring(num)],
datastyle = args.subheaderstyle,
rowcellstyle = args['subheaderstyle' .. tostring(num)],
class = args.subheaderclass,
rowclass = args['subheaderrowclass' .. tostring(num)]
})
end
end
local function renderImages()
if args.image then
args.image1 = args.image
end
if args.caption then
args.caption1 = args.caption
end
local imagenums = getArgNums('image')
for k, num in ipairs(imagenums) do
local caption = args['caption' .. tostring(num)]
local data = mw.html.create():wikitext(args['image' .. tostring(num)])
if caption then
data
:tag('div')
:cssText(args.captionstyle)
:wikitext(caption)
end
addRow({
data = tostring(data),
datastyle = args.imagestyle,
class = args.imageclass,
rowclass = args['imagerowclass' .. tostring(num)]
})
end
end
local function preprocessRows()
-- Gets the union of the header and data argument numbers,
-- and renders them all in order using addRow.
local rownums = union(getArgNums('header'), getArgNums('data'))
table.sort(rownums)
local lastheader
for k, num in ipairs(rownums) do
if args['header' .. tostring(num)] then
if lastheader then
args['header' .. tostring(lastheader)] = nil
end
lastheader = num
elseif args['data' .. tostring(num)] and args['data' .. tostring(num)]:gsub('%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*]]', ''):match('^%S') then
local data = args['data' .. tostring(num)]
if data:gsub('%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*]]', ''):match('%S') then
lastheader = nil
end
end
end
if lastheader then
args['header' .. tostring(lastheader)] = nil
end
end
local function renderRows()
-- Gets the union of the header and data argument numbers,
-- and renders them all in order using addRow.
local rownums = union(getArgNums('header'), getArgNums('data'))
table.sort(rownums)
for k, num in ipairs(rownums) do
addRow({
header = args['header' .. tostring(num)],
label = args['label' .. tostring(num)],
data = args['data' .. tostring(num)],
datastyle = args.datastyle,
class = args['class' .. tostring(num)],
rowclass = args['rowclass' .. tostring(num)],
rowstyle = args['rowstyle' .. tostring(num)],
rowcellstyle = args['rowcellstyle' .. tostring(num)],
dataid = args['dataid' .. tostring(num)],
labelid = args['labelid' .. tostring(num)],
headerid = args['headerid' .. tostring(num)],
rowid = args['rowid' .. tostring(num)]
})
end
end
local function renderItalicTitle()
local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title'])
if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then
root:wikitext(mw.getCurrentFrame():expandTemplate({title = 'italic title'}))
end
end
local function _infobox()
-- Specify the overall layout of the infobox, with special settings
-- if the infobox is used as a 'child' inside another infobox.
if args.child ~= 'yes' then
root = mw.html.create('table')
root
:addClass((args.subbox ~= 'yes') and 'infobox' or nil)
:addClass(args.bodyclass)
if args.subbox == 'yes' then
root
:css('padding', '0')
:css('border', 'none')
:css('margin', '-3px')
:css('width', 'auto')
:css('min-width', '100%')
:css('font-size', '100%')
:css('clear', 'none')
:css('float', 'none')
:css('background-color', 'transparent')
else
root
:css('width', '22em')
end
root
:cssText(args.bodystyle)
renderTitle()
renderAboveRow()
else
root = mw.html.create()
root
:wikitext(args.title)
end
renderSubheaders()
renderImages()
if args.autoheaders then
preprocessRows()
end
renderRows()
renderBelowRow()
renderItalicTitle()
return tostring(root)
end
local function preprocessSingleArg(argName)
-- If the argument exists and isn't blank, add it to the argument table.
-- Blank arguments are treated as nil to match the behaviour of ParserFunctions.
if origArgs[argName] and origArgs[argName] ~= '' then
args[argName] = origArgs[argName]
end
end
local function preprocessArgs(prefixTable, step)
-- Assign the parameters with the given prefixes to the args table, in order, in batches
-- of the step size specified. This is to prevent references etc. from appearing in the
-- wrong order. The prefixTable should be an array containing tables, each of which has
-- two possible fields, a "prefix" string and a "depend" table. The function always parses
-- parameters containing the "prefix" string, but only parses parameters in the "depend"
-- table if the prefix parameter is present and non-blank.
if type(prefixTable) ~= 'table' then
error("Non-table value detected for the prefix table", 2)
end
if type(step) ~= 'number' then
error("Invalid step value detected", 2)
end
-- Get arguments without a number suffix, and check for bad input.
for i,v in ipairs(prefixTable) do
if type(v) ~= 'table' or type(v.prefix) ~= "string" or (v.depend and type(v.depend) ~= 'table') then
error('Invalid input detected to preprocessArgs prefix table', 2)
end
preprocessSingleArg(v.prefix)
-- Only parse the depend parameter if the prefix parameter is present and not blank.
if args[v.prefix] and v.depend then
for j, dependValue in ipairs(v.depend) do
if type(dependValue) ~= 'string' then
error('Invalid "depend" parameter value detected in preprocessArgs')
end
preprocessSingleArg(dependValue)
end
end
end
-- Get arguments with number suffixes.
local a = 1 -- Counter variable.
local moreArgumentsExist = true
while moreArgumentsExist == true do
moreArgumentsExist = false
for i = a, a + step - 1 do
for j,v in ipairs(prefixTable) do
local prefixArgName = v.prefix .. tostring(i)
if origArgs[prefixArgName] then
moreArgumentsExist = true -- Do another loop if any arguments are found, even blank ones.
preprocessSingleArg(prefixArgName)
end
-- Process the depend table if the prefix argument is present and not blank, or
-- we are processing "prefix1" and "prefix" is present and not blank, and
-- if the depend table is present.
if v.depend and (args[prefixArgName] or (i == 1 and args[v.prefix])) then
for j,dependValue in ipairs(v.depend) do
local dependArgName = dependValue .. tostring(i)
preprocessSingleArg(dependArgName)
end
end
end
end
a = a + step
end
end
local function parseDataParameters()
-- Parse the data parameters in the same order that the old {{infobox}} did, so that
-- references etc. will display in the expected places. Parameters that depend on
-- another parameter are only processed if that parameter is present, to avoid
-- phantom references appearing in article reference lists.
preprocessSingleArg('autoheaders')
preprocessSingleArg('child')
preprocessSingleArg('bodyclass')
preprocessSingleArg('subbox')
preprocessSingleArg('bodystyle')
preprocessSingleArg('title')
preprocessSingleArg('titleclass')
preprocessSingleArg('titlestyle')
preprocessSingleArg('above')
preprocessSingleArg('aboveclass')
preprocessSingleArg('abovestyle')
preprocessArgs({
{prefix = 'subheader', depend = {'subheaderstyle', 'subheaderrowclass'}}
}, 10)
preprocessSingleArg('subheaderstyle')
preprocessSingleArg('subheaderclass')
preprocessArgs({
{prefix = 'image', depend = {'caption', 'imagerowclass'}}
}, 10)
preprocessSingleArg('captionstyle')
preprocessSingleArg('imagestyle')
preprocessSingleArg('imageclass')
preprocessArgs({
{prefix = 'header'},
{prefix = 'data', depend = {'label'}},
{prefix = 'rowclass'},
{prefix = 'rowstyle'},
{prefix = 'rowcellstyle'},
{prefix = 'class'},
{prefix = 'dataid'},
{prefix = 'labelid'},
{prefix = 'headerid'},
{prefix = 'rowid'}
}, 50)
preprocessSingleArg('headerclass')
preprocessSingleArg('headerstyle')
preprocessSingleArg('labelstyle')
preprocessSingleArg('datastyle')
preprocessSingleArg('below')
preprocessSingleArg('belowclass')
preprocessSingleArg('belowstyle')
preprocessSingleArg('name')
args['italic title'] = origArgs['italic title'] -- different behaviour if blank or absent
preprocessSingleArg('decat')
end
function p.infobox(frame)
-- If called via #invoke, use the args passed into the invoking template.
-- Otherwise, for testing purposes, assume args are being passed directly in.
if frame == mw.getCurrentFrame() then
origArgs = frame:getParent().args
else
origArgs = frame
end
parseDataParameters()
return _infobox()
end
function p.infoboxTemplate(frame)
-- For calling via #invoke within a template
origArgs = {}
for k,v in pairs(frame.args) do origArgs[k] = mw.text.trim(v) end
parseDataParameters()
return _infobox()
end
return p
c6ac51f9e2faf9c2f3aba1fb8c05af98db47f4d4
Template:Mbox
10
355
608
607
2023-11-02T21:46:39Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
{{#invoke:Message box|mbox}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
c262e205f85f774a23f74119179ceea11751d68e
Module:Message box
828
356
610
609
2023-11-02T21:46:39Z
Gingerdanger
2
1 revision imported
Scribunto
text/plain
-- This is a meta-module for producing message box templates, including
-- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}.
-- Load necessary modules.
require('Module:No globals')
local getArgs
local yesno = require('Module:Yesno')
local templatestyles = 'Module:Message box/styles.css'
-- Get a language object for formatDate and ucfirst.
local lang = mw.language.getContentLanguage()
-- Define constants
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {user = 'tmbox', talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ombox
obj.cfg = cfg.ombox
end
elseif ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <small class='date-container'>''(<span class='date'>%s</span>)''</small>", date)
end
self.info = args.info
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
if cfg.imageEmptyCellStyle then
self.imageEmptyCellStyle = 'border:none;padding:0px;width:1px'
end
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):css('width', '52px')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
:cssText(self.imageEmptyCellStyle or nil)
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) and not self.isSmall then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):css('width', '52px')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:css('text-align', 'center')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
return box:export()
end
local function templatestyles(frame, src)
return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = templatestyles} }
.. 'CONFIG_MODULE'
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
be00cd389f9f2afcd361e5d5e33622839555cbd9
Module:Message box/configuration
828
357
612
611
2023-11-02T21:46:40Z
Gingerdanger
2
1 revision imported
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
templateErrorCategory = 'Article message templates with missing parameters',
templateErrorParamsToCheck = {'issue', 'fix'},
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
imageEmptyCellStyle = true,
templateCategory = 'Talk message boxes'
}
}
c6bd9191861b23e474e12b19c694335c4bc3af5f
Module:No globals
828
358
614
613
2023-11-02T21:46:40Z
Gingerdanger
2
1 revision imported
Scribunto
text/plain
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
error('Tried to read nil global ' .. tostring(k), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error('Tried to write global ' .. tostring(k), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)
8ce3969f7d53b08bd00dabe4cc9780bc6afd412a
Module:Yesno
828
359
616
615
2023-11-02T21:46:41Z
Gingerdanger
2
1 revision imported
Scribunto
text/plain
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or tonumber(val) == 0
then
return false
else
return default
end
end
f767643e7d12126d020d88d662a3dd057817b9dc
Template:En-WP attribution notice
10
360
618
617
2023-11-02T21:46:42Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
<includeonly>{| style="border: 1px solid #e0e0e0; background-color: #f8f8f8; color:black; margin: 5px auto; width: 60%;"
|-
| style="padding: 3px 10px;" | [[File:Wikipedia-logo-v2.svg|30px|Wikipedia logo]]
| style="font-size: 90%; padding: 3px;" | This page uses material from the Wikipedia page [[w:en:{{{1|{{FULLPAGENAME}}}}}|{{{1|{{FULLPAGENAME}}}}}]], which is released under the [[w:en:Wikipedia:Text of Creative Commons Attribution-ShareAlike 3.0 Unported License|Creative Commons Attribution-ShareAlike 3.0 Unported License]] ([https://en.wikipedia.org/w/index.php?title={{urlencode:{{{1|{{FULLPAGENAME}}}}}}}&action=history view authors]).
|}
[[Category:Pages from English Wikipedia]]</includeonly>
<noinclude>
{{documentation}}
{{En-WP attribution notice|Template:En-WP attribution notice}}
</noinclude>
22d054cdfdc01cc48994b02dc0ccde4265694650
Template:User github
10
361
620
619
2023-11-02T21:46:42Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
{{Userbox
| id = [[File:GitLogo.png|43px]]
| float = {{{float|right}}}
| border-c = #808080
| id-c = #FFFFFF
| info-c = #DBDBDB
| info = {{#if:{{{username|}}}|''{{PAGENAME}}''|This user}} has an account on GitHub{{#if:{{{account|}}}| as ''[[github:{{{account}}}|{{{account}}}]]''|}}.
| nocat = {{{nocat|}}}
| usercategory = Users who use GitHub
}}<noinclude>{{Documentation}}[[Category:Social media userboxes|{{PAGENAME}}]]</noinclude>
08ef531d5b5a1e69b84939e0fc1f1d0d622f38ad
Template:Userbox
10
362
622
621
2023-11-02T21:46:43Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
{{#invoke:userbox|userbox}}<noinclude>{{documentation}}</noinclude>
6813e8e31cadc62df2379b5fae9ea23c23f29e97
Module:Userbox
828
363
624
623
2023-11-02T21:46:44Z
Gingerdanger
2
1 revision imported
Scribunto
text/plain
-- This module implements {{userbox}}.
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function checkNum(val, default)
-- Checks whether a value is a number greater than or equal to zero. If so,
-- returns it as a number. If not, returns a default value.
val = tonumber(val)
if val and val >= 0 then
return val
else
return default
end
end
local function addSuffix(num, suffix)
-- Turns a number into a string and adds a suffix.
if num then
return tostring(num) .. suffix
else
return nil
end
end
local function checkNumAndAddSuffix(num, default, suffix)
-- Checks a value with checkNum and adds a suffix.
num = checkNum(num, default)
return addSuffix(num, suffix)
end
local function makeCat(cat, sort)
-- Makes a category link.
if sort then
return mw.ustring.format('[[Category:%s|%s]]', cat, sort)
else
return mw.ustring.format('[[Category:%s]]', cat)
end
end
--------------------------------------------------------------------------------
-- Argument processing
--------------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local origArgs = require('Module:Arguments').getArgs(frame)
local args = {}
for k, v in pairs(origArgs) do
args[k] = v
end
return p.main(funcName, args)
end
end
p.userbox = makeInvokeFunc('_userbox')
p['userbox-2'] = makeInvokeFunc('_userbox-2')
p['userbox-r'] = makeInvokeFunc('_userbox-r')
--------------------------------------------------------------------------------
-- Main functions
--------------------------------------------------------------------------------
function p.main(funcName, args)
local userboxData = p[funcName](args)
local userbox = p.render(userboxData)
local cats = p.categories(args)
return userbox .. (cats or '')
end
function p._userbox(args)
-- Does argument processing for {{userbox}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-color'] or args[1] or args['border-c'] or args['id-c'] or '#999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-background'] or args[2] or args['info-c'] or '#eee'
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-size'] or args['info-s'], 8, 'pt')
data.infoHeight = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.infoPadding = args['info-padding'] or args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-line-height'] or args['info-lh'] or '1.25em'
data.infoColor = args['info-color'] or args['info-fc'] or 'black'
data.infoOtherParams = args['info-other-param'] or args['info-op']
data.infoClass = args['info-class']
-- Get id values.
local id = args.logo or args[3] or args.id
data.id = id
data.showId = id and true or false
data.idWidth = checkNumAndAddSuffix(args['logo-width'] or args['id-w'], 45, 'px')
data.idHeight = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.idBackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd'
data.idTextAlign = args['id-a'] or 'center'
data.idFontSize = checkNumAndAddSuffix(args['logo-size'] or args[5] or args['id-s'], 14, 'pt')
data.idColor = args['logo-color'] or args['id-fc'] or data.infoColor
data.idPadding = args['logo-padding'] or args['id-p'] or '0 1px 0 0'
data.idLineHeight = args['logo-line-height'] or args['id-lh'] or '1.25em'
data.idOtherParams = args['logo-other-param'] or args['id-op']
data.idClass = args['id-class']
return data
end
p['_userbox-2'] = function (args)
-- Does argument processing for {{userbox-2}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args[9] or args['border-s'], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args[1] or args['border-c'] or args['id1-c'] or '#999999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args[2] or args['info-c'] or '#eeeeee'
-- Get info values.
data.info = args[4] or args.info or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-s'], 8, 'pt')
data.infoColor = args[8] or args['info-fc'] or 'black'
data.infoPadding = args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-lh'] or '1.25em'
data.infoOtherParams = args['info-op']
-- Get id values.
data.showId = true
data.id = args.logo or args[3] or args.id1 or 'id1'
data.idWidth = checkNumAndAddSuffix(args['id1-w'], 45, 'px')
data.idHeight = checkNumAndAddSuffix(args['id-h'], 45, 'px')
data.idBackgroundColor = args[1] or args['id1-c'] or '#dddddd'
data.idTextAlign = 'center'
data.idFontSize = checkNumAndAddSuffix(args['id1-s'], 14, 'pt')
data.idLineHeight = args['id1-lh'] or '1.25em'
data.idColor = args['id1-fc'] or data.infoColor
data.idPadding = args['id1-p'] or '0 1px 0 0'
data.idOtherParams = args['id1-op']
-- Get id2 values.
data.showId2 = true
data.id2 = args.logo or args[5] or args.id2 or 'id2'
data.id2Width = checkNumAndAddSuffix(args['id2-w'], 45, 'px')
data.id2Height = data.idHeight
data.id2BackgroundColor = args[7] or args['id2-c'] or args[1] or '#dddddd'
data.id2TextAlign = 'center'
data.id2FontSize = checkNumAndAddSuffix(args['id2-s'], 14, 'pt')
data.id2LineHeight = args['id2-lh'] or '1.25em'
data.id2Color = args['id2-fc'] or data.infoColor
data.id2Padding = args['id2-p'] or '0 0 0 1px'
data.id2OtherParams = args['id2-op']
return data
end
p['_userbox-r'] = function (args)
-- Does argument processing for {{userbox-r}}.
local data = {}
-- Get div tag values.
data.float = args.float or 'left'
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width.
data.borderWidth = addSuffix(borderWidthNum, 'px')
data.borderColor = args['border-color'] or args[1] or args['border-c'] or args['id-c'] or '#999'
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag.
data.bodyClass = args.bodyclass
-- Get table tag values.
data.backgroundColor = args['info-background'] or args[2] or args['info-c'] or '#eee'
-- Get id values.
data.showId = false -- We only show id2 in userbox-r.
-- Get info values.
data.info = args.info or args[4] or "<code>{{{info}}}</code>"
data.infoTextAlign = args['info-align'] or args['info-a'] or 'left'
data.infoFontSize = checkNumAndAddSuffix(args['info-size'] or args['info-s'], 8, 'pt')
data.infoPadding = args['info-padding'] or args['info-p'] or '0 4px 0 4px'
data.infoLineHeight = args['info-line-height'] or args['info-lh'] or '1.25em'
data.infoColor = args['info-color'] or args['info-fc'] or 'black'
data.infoOtherParams = args['info-other-param'] or args['info-op']
-- Get id2 values.
data.showId2 = true
data.id2 = args.logo or args[3] or args.id or 'id'
data.id2Width = checkNumAndAddSuffix(args['logo-width'] or args['id-w'], 45, 'px')
data.id2Height = checkNumAndAddSuffix(args['logo-height'] or args['id-h'], 45, 'px')
data.id2BackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd'
data.id2TextAlign = args['id-a'] or 'center'
data.id2FontSize = checkNumAndAddSuffix(args['logo-size'] or args[5] or args['id-s'], 14, 'pt')
data.id2Color = args['logo-color'] or args['id-fc'] or data.infoColor
data.id2Padding = args['logo-padding'] or args['id-p'] or '0 0 0 1px'
data.id2LineHeight = args['logo-line-height'] or args['id-lh'] or '1.25em'
data.id2OtherParams = args['logo-other-param'] or args['id-op']
return data
end
function p.render(data)
-- Renders the userbox html using the content of the data table.
-- Render the div tag html.
local root = mw.html.create('div')
root
:css('float', data.float)
:css('border', (data.borderWidth or '') .. ' solid ' .. (data.borderColor or ''))
:css('margin', '1px')
:css('width', data.width)
:addClass('wikipediauserbox')
:addClass(data.bodyClass)
-- Render the table tag html.
local tableroot = root:tag('table')
tableroot
:css('border-collapse', 'collapse')
:css('width', data.width)
:css('margin-bottom', '0')
:css('margin-top', '0')
:css('background', data.backgroundColor)
-- Render the id html.
local tablerow = tableroot:tag('tr')
if data.showId then
tablerow:tag('th')
:css('border', '0')
:css('width', data.idWidth)
:css('height', data.idHeight)
:css('background', data.idBackgroundColor)
:css('text-align', data.idTextAlign)
:css('font-size', data.idFontSize)
:css('color', data.idColor)
:css('padding', data.idPadding)
:css('line-height', data.idLineHeight)
:css('vertical-align', 'middle')
:cssText(data.idOtherParams)
:addClass(data.idClass)
:wikitext(data.id)
end
-- Render the info html.
tablerow:tag('td')
:css('border', '0')
:css('text-align', data.infoTextAlign)
:css('font-size', data.infoFontSize)
:css('padding', data.infoPadding)
:css('height', data.infoHeight)
:css('line-height', data.infoLineHeight)
:css('color', data.infoColor)
:css('vertical-align', 'middle')
:cssText(data.infoOtherParams)
:addClass(data.infoClass)
:wikitext(data.info)
-- Render the second id html.
if data.showId2 then
tablerow:tag('th')
:css('border', '0')
:css('width', data.id2Width)
:css('height', data.id2Height)
:css('background', data.id2BackgroundColor)
:css('text-align', data.id2TextAlign)
:css('font-size', data.id2FontSize)
:css('color', data.id2Color)
:css('padding', data.id2Padding)
:css('line-height', data.id2LineHeight)
:css('vertical-align', 'middle')
:cssText(data.id2OtherParams)
:wikitext(data.id2)
end
local title = mw.title.getCurrentTitle()
if (title.namespace == 2) and not title.text:match("/") then
return tostring(root) -- regular user page
elseif title.namespace == 14 then
return tostring(root) -- category
elseif title.isTalkPage then
return tostring(root) -- talk page
end
local function has_text(wikitext)
local function get_alt(text)
return text:match("|alt=([^|]*)") or ""
end
wikitext = wikitext:gsub("]]", "|]]")
wikitext = wikitext:gsub("%[%[%s*[Mm][Ee][Dd][Ii][Aa]%s*:[^|]-(|.-)]]", get_alt)
wikitext = wikitext:gsub("%[%[%s*[Ii][Mm][Aa][Gg][Ee]%s*:[^|]-(|.-)]]", get_alt)
wikitext = wikitext:gsub("%[%[%s*[Ff][Ii][Ll][Ee]%s*:[^|]-(|.-)]]", get_alt)
return mw.text.trim(wikitext) ~= ""
end
return tostring(root)
end
function p.categories(args, page)
-- Gets categories
-- The page parameter makes the function act as though the module was being called from that page.
-- It is included for testing purposes.
local cats = {}
cats[#cats + 1] = args.usercategory
cats[#cats + 1] = args.usercategory2
cats[#cats + 1] = args.usercategory3
if #cats > 0 and not require("Module:Yesno")(args.nocat) then
-- Get the title object
local title
if page then
title = mw.title.new(page)
else
title = mw.title.getCurrentTitle()
end
-- Build category handler arguments.
local chargs = {}
chargs.page = page
chargs.main = '[[Category:Pages with misplaced templates]]'
if title.namespace == 2 then
-- User namespace.
local user = ''
for i, cat in ipairs(cats) do
user = user .. makeCat(cat)
end
return user
elseif title.namespace == 10 then
-- Template namespace.
local basepage = title.baseText
local template = ''
for i, cat in ipairs(cats) do
template = template .. makeCat(cat, ' ' .. basepage)
end
return template
end
end
end
return p
aac333efff739f0243d8ffced6f4296cffb8d7e9
Template:GitBox
10
364
626
625
2023-11-02T21:46:45Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Template:User github]]
5619080886a72031f4953c16bc7715c10fe18e26
Template:Para
10
365
628
627
2023-11-02T21:46:45Z
Gingerdanger
2
1 revision imported
wikitext
text/x-wiki
<code class="tpl-para" style="word-break:break-word;{{SAFESUBST:<noinclude />#if:{{{plain|}}}|border: none; background-color: inherit;}} {{SAFESUBST:<noinclude />#if:{{{style|}}}|{{{style}}}}}">|{{SAFESUBST:<noinclude />#if:{{{1|}}}|{{{1}}}=}}{{{2|}}}</code><noinclude>
{{Documentation}}
<!--Categories and interwikis go near the bottom of the /doc subpage.-->
</noinclude>
7be5bee75307eae9342bbb9ff3a613e93e93d5a7
Template:Character
10
9
633
20
2023-11-02T22:08:20Z
Gingerdanger
2
wikitext
text/x-wiki
{{Infobox
| bodystyle = border-spacing: 2px 5px;
| above = {{If empty |{{{name|}}} |<includeonly>{{PAGENAMEBASE}}</includeonly> }}
| abovestyle = background: {{If empty |{{{color|}}} |{{{colour|}}} |#DEDEE2 }}; {{#if: {{{color|}}}{{{colour|}}} | color: {{Greater color contrast ratio|{{If empty |{{{color|}}} |{{{colour|}}} }}|black|white }}; }}
| subheader = {{#if: {{{series|}}}{{{franchise|}}} | {{#if: {{{series|}}} | ''{{{series|}}}'' | {{{franchise|}}} }} character{{#if: {{{multiple|}}} | s }} }}
| image = {{{image|}}}|
| caption = {{{caption|}}}
| headerstyle = background: {{If empty |{{{color|}}} |{{{colour|}}} |#DEDEE2 }}; {{#if: {{{color|}}}{{{colour|}}} |color: {{Greater color contrast ratio|{{If empty |{{{color|}}} |{{{colour|}}} }}|black|white }}; }}
| label1 = Race
| data1 = {{{race|}}}
| label2 = Class
| data2 = {{{class|}}}
| label3 = Subclass
| data3 = {{{subclass|}}}
| label4 = Player
| data4 = {{{creator|}}}
| label5 = Art by
| data5 = {{{artist|}}}
| label6 = STR
| data6 = {{{str|}}}
| label7 = DEX
| data7 = {{{dex|}}}
| label8 = CON
| data8 = {{{con|}}}
| label9 = INT
| data9 = {{{int|}}}
| label10 = WIS
| data10 = {{{wis|}}}
| label11 = CHA
| data11 = {{{cha|}}}
| label12 = Alignment
| data12 = {{{alignment|}}}
| label13 = {{{lbl2|}}}
| data13 = {{{data2|}}}
| label14 = {{{lbl3|}}}
| data14 = {{{data3|}}}
| label15 = {{{lbl4|}}}
| data15 = {{{data4|}}}
| header20 = {{#if: {{{noinfo|}}} || {{#if: {{{full_name|}}} {{{alias|}}} {{{aliases|}}} {{{nickname|}}} {{{nicknames|}}} {{{race|}}} {{{gender|}}} {{{pronouns|}}} {{{title|}}} {{{occupation|}}} {{{position|}}} {{{class|}}} {{{affiliation|}}} {{{spouse|}}} {{{spouses|}}} {{{significant_other|}}} {{{significant_others|}}} {{{children|}}} {{{relatives|}}} {{{religion|}}} {{{hometown|}}} {{{data21|}}} {{{data22|}}} {{{data23|}}} {{{data24|}}} {{{data25|}}} {{{data26|}}} {{{data27|}}} {{{data28|}}} {{{data29|}}} {{{data30|}}} | {{If empty |{{{info-hdr|}}} |Personal information }} }} }}
| label21 = Full name
| data21 = {{{full_name|}}}
| label22 = {{#if: {{{alias|}}} | Alias | Aliases }}
| data22 = {{If empty |{{{alias|}}} |{{{aliases|}}} }}
| label23 = {{#if: {{{nickname|}}} | Nickname | Nicknames }}
| data23 = {{If empty |{{{nickname|}}} |{{{nicknames|}}} }}
| label24 = Gender
| data24 = {{{gender|}}}
| label25 = Pronouns
| data25 = {{{pronouns|}}}
| label26 = Title
| data26 = {{{title|}}}
| label27 = {{#if: {{{occupation|}}} | Occupation | {{#if: {{{position|}}} | Position | Class }} }}
| data27 = {{If empty |{{{occupation|}}} |{{{position|}}} |{{{class|}}} }}
| label28 = Affiliation
| data28 = {{{affiliation|}}}
| label29 = Relatives
| data29 = {{{relatives|}}}
| label30 = {{#if: {{{spouse|}}} | Spouse | Spouses }}
| data30 = {{If empty |{{{spouse|}}} |{{{spouses|}}} }}
| label31 = {{#if: {{{significant_other|}}} | Significant other | Significant others }}
| data31 = {{If empty |{{{significant_other|}}} |{{{significant_others|}}} }}
| label32 = Children
| data32 = {{{children|}}}
| label33 = Religion
| data33 = {{{religion|}}}
| label34 = Hometown
| data34 = {{{hometown|}}}
| label35 = {{{lbl21|}}}
| data35 = {{{data21|}}}
| label36 = {{{lbl22|}}}
| data36 = {{{data22|}}}
| label37 = {{{lbl23|}}}
| data37 = {{{data23|}}}
| label38 = {{{lbl22|}}}
| data38 = {{{data22|}}}
| label39 = {{{lbl23|}}}
| data39 = {{{data23|}}}
| label40 = {{{lbl21|}}}
| data40 = {{{data27|}}}
| label41 = {{{lbl22|}}}
| data41 = {{{data28|}}}
| label42 = {{{lbl24|}}}
| data42 = {{{data29|}}}
| label43 = {{{lbl25|}}}
| data43 = {{{data30|}}}
| header50 = {{#if: {{{data31|}}} {{{data32|}}} {{{data33|}}} {{{data34|}}} {{{data35|}}} | {{{extra-hdr|}}} }}
| label51 = {{{lbl31|}}}
| data51 = {{{data31|}}}
| label52 = {{{lbl32|}}}
| data52 = {{{data32|}}}
| label53 = {{{lbl33|}}}
| data53 = {{{data33|}}}
| label54 = {{{lbl34|}}}
| data54 = {{{data34|}}}
| label55 = {{{lbl35|}}}
| data55 = {{{data35|}}}
}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
e4e339550fcc66b3c682012aff749328a3513263
635
633
2023-11-02T22:18:18Z
Gingerdanger
2
wikitext
text/x-wiki
{{Infobox
| bodystyle = border-spacing: 2px 5px;
| above = {{If empty |{{{name|}}} |<includeonly>{{PAGENAMEBASE}}</includeonly> }}
| abovestyle = background: {{If empty |{{{color|}}} |{{{colour|}}} |#DEDEE2 }}; {{#if: {{{color|}}}{{{colour|}}} | color: {{Greater color contrast ratio|{{If empty |{{{color|}}} |{{{colour|}}} }}|black|white }}; }}
| subheader = {{#if: {{{series|}}}{{{franchise|}}} | {{#if: {{{series|}}} | ''{{{series|}}}'' | {{{franchise|}}} }} character{{#if: {{{multiple|}}} | s }} }}
| image = {{{image|}}}|
| caption = {{{caption|}}}
| headerstyle = background: {{If empty |{{{color|}}} |{{{colour|}}} |#DEDEE2 }}; {{#if: {{{color|}}}{{{colour|}}} |color: {{Greater color contrast ratio|{{If empty |{{{color|}}} |{{{colour|}}} }}|black|white }}; }}
| label1 = Race
| data1 = {{{race|}}}
| label2 = Class
| data2 = {{{class|}}}
| label3 = Subclass
| data3 = {{{subclass|}}}
| label4 = Player
| data4 = {{{creator|}}}
| label5 = Art by
| data5 = {{{artist|}}}
| label6 = STR
| data6 = {{{str|}}}
| label7 = DEX
| data7 = {{{dex|}}}
| label8 = CON
| data8 = {{{con|}}}
| label9 = INT
| data9 = {{{int|}}}
| label10 = WIS
| data10 = {{{wis|}}}
| label11 = CHA
| data11 = {{{cha|}}}
| label12 = Alignment
| data12 = {{{alignment|}}}
| label13 = {{{lbl2|}}}
| data13 = {{{data2|}}}
| label14 = {{{lbl3|}}}
| data14 = {{{data3|}}}
| label15 = {{{lbl4|}}}
| data15 = {{{data4|}}}
| header20 = {{#if: {{{noinfo|}}} || {{#if: {{{full_name|}}} {{{age|}}} {{{alias|}}} {{{aliases|}}} {{{nickname|}}} {{{nicknames|}}} {{{gender|}}} {{{pronouns|}}} {{{title|}}} {{{occupation|}}} {{{position|}}} {{{class|}}} {{{affiliation|}}} {{{spouse|}}} {{{spouses|}}} {{{significant_other|}}} {{{significant_others|}}} {{{children|}}} {{{relatives|}}} {{{religion|}}} {{{hometown|}}} {{{data21|}}} {{{data22|}}} {{{data23|}}} {{{data24|}}} {{{data25|}}} {{{data26|}}} {{{data27|}}} {{{data28|}}} {{{data29|}}} {{{data30|}}} | {{If empty |{{{info-hdr|}}} |Personal information }} }} }}
| label21 = Full name
| data21 = {{{full_name|}}}
| label22 = Age
| data22 = {{{age|}}}
| label23 = {{#if: {{{alias|}}} | Alias | Aliases }}
| data23 = {{If empty |{{{alias|}}} |{{{aliases|}}} }}
| label24 = {{#if: {{{nickname|}}} | Nickname | Nicknames }}
| data24 = {{If empty |{{{nickname|}}} |{{{nicknames|}}} }}
| label25 = Gender
| data25 = {{{gender|}}}
| label26 = Pronouns
| data26 = {{{pronouns|}}}
| label27 = Title
| data27 = {{{title|}}}
| label28 = {{#if: {{{occupation|}}} | Occupation | {{#if: {{{position|}}} | Position | Class }} }}
| data28 = {{If empty |{{{occupation|}}} |{{{position|}}} |{{{class|}}} }}
| label29 = Affiliation
| data29 = {{{affiliation|}}}
| label30 = Relatives
| data30 = {{{relatives|}}}
| label31 = {{#if: {{{spouse|}}} | Spouse | Spouses }}
| data31 = {{If empty |{{{spouse|}}} |{{{spouses|}}} }}
| label32 = {{#if: {{{significant_other|}}} | Significant other | Significant others }}
| data32 = {{If empty |{{{significant_other|}}} |{{{significant_others|}}} }}
| label33 = Children
| data33 = {{{children|}}}
| label34 = Religion
| data34 = {{{religion|}}}
| label34 = Hometown
| data34 = {{{hometown|}}}
| label35 = {{{lbl21|}}}
| data35 = {{{data21|}}}
| label36 = {{{lbl22|}}}
| data36 = {{{data22|}}}
| label37 = {{{lbl23|}}}
| data37 = {{{data23|}}}
| label38 = {{{lbl22|}}}
| data38 = {{{data22|}}}
| label39 = {{{lbl23|}}}
| data39 = {{{data23|}}}
| label40 = {{{lbl21|}}}
| data40 = {{{data27|}}}
| label41 = {{{lbl22|}}}
| data41 = {{{data28|}}}
| label42 = {{{lbl24|}}}
| data42 = {{{data29|}}}
| label43 = {{{lbl25|}}}
| data43 = {{{data30|}}}
| header50 = {{#if: {{{data31|}}} {{{data32|}}} {{{data33|}}} {{{data34|}}} {{{data35|}}} | {{{extra-hdr|}}} }}
| label51 = {{{lbl31|}}}
| data51 = {{{data31|}}}
| label52 = {{{lbl32|}}}
| data52 = {{{data32|}}}
| label53 = {{{lbl33|}}}
| data53 = {{{data33|}}}
| label54 = {{{lbl34|}}}
| data54 = {{{data34|}}}
| label55 = {{{lbl35|}}}
| data55 = {{{data35|}}}
}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
6a4888cf7fb49ece3580cd34b8add22bbba25e09
660
635
2023-11-03T04:21:29Z
Gingerdanger
2
wikitext
text/x-wiki
{{Infobox
| bodystyle = border-spacing: 2px 5px;
| above = {{If empty |{{{name|}}} |<includeonly>{{PAGENAMEBASE}}</includeonly> }}
| abovestyle = background: {{If empty |{{{color|}}} |{{{colour|}}} |#DEDEE2 }}; {{#if: {{{color|}}}{{{colour|}}} | color: {{Greater color contrast ratio|{{If empty |{{{color|}}} |{{{colour|}}} }}|black|white }}; }}
| subheader = {{#if: {{{series|}}}{{{franchise|}}} | {{#if: {{{series|}}} | ''{{{series|}}}'' | {{{franchise|}}} }} character{{#if: {{{multiple|}}} | s }} }}
| image = {{{image|}}}|
| caption = {{{caption|}}}
| headerstyle = background: {{If empty |{{{color|}}} |{{{colour|}}} |#DEDEE2 }}; {{#if: {{{color|}}}{{{colour|}}} |color: {{Greater color contrast ratio|{{If empty |{{{color|}}} |{{{colour|}}} }}|black|white }}; }}
| label1 = Race
| data1 = {{{race|}}}
| label2 = Class
| data2 = {{{class|}}}
| label3 = Subclass
| data3 = {{{subclass|}}}
| label4 = Player
| data4 = {{{creator|}}}
| label5 = Art by
| data5 = {{{artist|}}}
| label6 = STR
| data6 = {{{str|}}}
| label7 = DEX
| data7 = {{{dex|}}}
| label8 = CON
| data8 = {{{con|}}}
| label9 = INT
| data9 = {{{int|}}}
| label10 = WIS
| data10 = {{{wis|}}}
| label11 = CHA
| data11 = {{{cha|}}}
| label12 = Alignment
| data12 = {{{alignment|}}}
| label13 = {{{lbl2|}}}
| data13 = {{{data2|}}}
| label14 = {{{lbl3|}}}
| data14 = {{{data3|}}}
| label15 = {{{lbl4|}}}
| data15 = {{{data4|}}}
| header20 = {{#if: {{{noinfo|}}} || {{#if: {{{full_name|}}} {{{age|}}} {{{alias|}}} {{{aliases|}}} {{{nickname|}}} {{{nicknames|}}} {{{gender|}}} {{{pronouns|}}} {{{title|}}} {{{occupation|}}} {{{position|}}} {{{class|}}} {{{affiliation|}}} {{{spouse|}}} {{{spouses|}}} {{{significant_other|}}} {{{significant_others|}}} {{{children|}}} {{{relatives|}}} {{{religion|}}} {{{hometown|}}} {{{data21|}}} {{{data22|}}} {{{data23|}}} {{{data24|}}} {{{data25|}}} {{{data26|}}} {{{data27|}}} {{{data28|}}} {{{data29|}}} {{{data30|}}} | {{If empty |{{{info-hdr|}}} |Personal information }} }} }}
| label21 = Full name
| data21 = {{{full_name|}}}
| label22 = Age
| data22 = {{{age|}}}
| label23 = {{#if: {{{alias|}}} | Alias | Aliases }}
| data23 = {{If empty |{{{alias|}}} |{{{aliases|}}} }}
| label24 = {{#if: {{{nickname|}}} | Nickname | Nicknames }}
| data24 = {{If empty |{{{nickname|}}} |{{{nicknames|}}} }}
| label25 = Gender
| data25 = {{{gender|}}}
| label26 = Pronouns
| data26 = {{{pronouns|}}}
| label27 = Title
| data27 = {{{title|}}}
| label28 = {{#if: {{{occupation|}}} | Occupation | {{#if: {{{position|}}} | Position | Class }} }}
| data28 = {{If empty |{{{occupation|}}} |{{{position|}}} |{{{class|}}} }}
| label29 = Affiliation
| data29 = {{{affiliation|}}}
| label30 = Relatives
| data30 = {{{relatives|}}}
| label31 = {{#if: {{{spouse|}}} | Spouse | Spouses }}
| data31 = {{If empty |{{{spouse|}}} |{{{spouses|}}} }}
| label32 = {{#if: {{{significant_other|}}} | Significant other | Significant others }}
| data32 = {{If empty |{{{significant_other|}}} |{{{significant_others|}}} }}
| label33 = Children
| data33 = {{{children|}}}
| label34 = Religion
| data34 = {{{religion|}}}
| label35 = Hometown
| data35 = {{{hometown|}}}
| label36 = {{{lbl21|}}}
| data36 = {{{data21|}}}
| label37 = {{{lbl22|}}}
| data37 = {{{data22|}}}
| label38 = {{{lbl23|}}}
| data38 = {{{data23|}}}
| label39 = {{{lbl24|}}}
| data39 = {{{data24|}}}
| label40 = {{{lbl25|}}}
| data40 = {{{data25|}}}
| label41 = {{{lbl26|}}}
| data41 = {{{data26|}}}
| label42 = {{{lbl27|}}}
| data42 = {{{data27|}}}
| label43 = {{{lbl28|}}}
| data43 = {{{data28|}}}
| label44 = {{{lbl29|}}}
| data44 = {{{data29|}}}
| label45 = {{{lbl30|}}}
| data45 = {{{data30|}}}
| header50 = {{#if: {{{data51|}}} {{{data52|}}} {{{data53|}}} {{{data54|}}} {{{data55|}}} | {{{extra-hdr|}}} }}
| label51 = {{{lbl31|}}}
| data51 = {{{data31|}}}
| label52 = {{{lbl32|}}}
| data52 = {{{data32|}}}
| label53 = {{{lbl33|}}}
| data53 = {{{data33|}}}
| label54 = {{{lbl34|}}}
| data54 = {{{data34|}}}
| label55 = {{{lbl35|}}}
| data55 = {{{data35|}}}
}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
a663fe41f64b1e81b53e6766056274aa21d23140
Template:Character/doc
10
10
634
21
2023-11-02T22:18:08Z
Gingerdanger
2
/* Syntax */
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>
{{Character
| name =
| image =
| caption =
| race =
| class =
| subclass =
| player =
| creator =
| str =
| dex =
| con =
| int =
| wis =
| cha =
| alignment =
| fullname =
| age =
| gender =
| pronouns =
| alias =
| title =
| occupation =
| affiliation =
| relatives =
| significant_other =
| children =
| religion =
| hometown =
}}
</pre>
== Sample output ==
{{Character
| name = Flowa
| image = Example.jpg
| imagecaption = Flowa, at rest
| aliases = Flo
| relatives =
| affiliation =
| occupation =
| marital =
| birthDate = July 21st, 2013
| birthPlace = Iowa
| deathDate =
| deathPlace =
| species = Plant
| gender =
| height =
| weight =
| eyes =
| portrayedby =
| appearsin =
| debut =
}}
<pre>
{{Character
| name = Flowa
| image = Example.jpg
| imagecaption = Flowa, at rest
| aliases = Flo
| relatives =
| affiliation =
| occupation =
| marital =
| birthDate = July 21st, 2013
| birthPlace = Iowa
| deathDate =
| deathPlace =
| species = Plant
| gender =
| height =
| weight =
| eyes =
| portrayedby =
| appearsin =
| debut =
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
711bd5a71a6f5511fd48e0b7454386ab5fc0503d
636
634
2023-11-02T22:19:47Z
Gingerdanger
2
/* Sample output */
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>
{{Character
| name =
| image =
| caption =
| race =
| class =
| subclass =
| player =
| creator =
| str =
| dex =
| con =
| int =
| wis =
| cha =
| alignment =
| fullname =
| age =
| gender =
| pronouns =
| alias =
| title =
| occupation =
| affiliation =
| relatives =
| significant_other =
| children =
| religion =
| hometown =
}}
</pre>
== Sample output ==
{{Character
| name = Flowa
| image = Example.jpg
| caption = Flowa, at rest
| race = Firbolg
| class = Druid
| subclass =
| player =
| creator =
| str =
| dex =
| con =
| int =
| wis =
| cha =
| alignment = Neutral Good
| fullname =
| age =
| gender =
| pronouns =
| alias =
| title =
| occupation = Farmer
| affiliation =
| relatives =
| significant_other =
| children =
| religion =
| hometown = Neverwinter
}}
<pre>
{{Character
| name = Flowa
| image = Example.jpg
| caption = Flowa, at rest
| race = Firbolg
| class = Druid
| subclass =
| player =
| creator =
| str =
| dex =
| con =
| int =
| wis =
| cha =
| alignment = Neutral Good
| fullname =
| age =
| gender =
| pronouns =
| alias =
| title =
| occupation = Farmer
| affiliation =
| relatives =
| significant_other =
| children =
| religion =
| hometown = Neverwinter
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
73a458bd958f2c0b42386822a800d99e5b8e445a
638
636
2023-11-02T22:28:39Z
Gingerdanger
2
/* Syntax */
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>
{{Character
| name =
| image =
| caption =
| race =
| class =
| subclass =
| player =
| artist =
| str =
| dex =
| con =
| int =
| wis =
| cha =
| alignment =
| fullname =
| age =
| gender =
| pronouns =
| alias =
| title =
| occupation =
| affiliation =
| relatives =
| significant_other =
| children =
| religion =
| hometown =
}}
</pre>
== Sample output ==
{{Character
| name = Flowa
| image = Example.jpg
| caption = Flowa, at rest
| race = Firbolg
| class = Druid
| subclass =
| player =
| creator =
| str =
| dex =
| con =
| int =
| wis =
| cha =
| alignment = Neutral Good
| fullname =
| age =
| gender =
| pronouns =
| alias =
| title =
| occupation = Farmer
| affiliation =
| relatives =
| significant_other =
| children =
| religion =
| hometown = Neverwinter
}}
<pre>
{{Character
| name = Flowa
| image = Example.jpg
| caption = Flowa, at rest
| race = Firbolg
| class = Druid
| subclass =
| player =
| creator =
| str =
| dex =
| con =
| int =
| wis =
| cha =
| alignment = Neutral Good
| fullname =
| age =
| gender =
| pronouns =
| alias =
| title =
| occupation = Farmer
| affiliation =
| relatives =
| significant_other =
| children =
| religion =
| hometown = Neverwinter
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
d0768c346afe60e965f03b0e4975245d9ac4d2e4
639
638
2023-11-02T22:29:06Z
Gingerdanger
2
/* Sample output */
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>
{{Character
| name =
| image =
| caption =
| race =
| class =
| subclass =
| player =
| artist =
| str =
| dex =
| con =
| int =
| wis =
| cha =
| alignment =
| fullname =
| age =
| gender =
| pronouns =
| alias =
| title =
| occupation =
| affiliation =
| relatives =
| significant_other =
| children =
| religion =
| hometown =
}}
</pre>
== Sample output ==
{{Character
| name = Flowa
| image = Example.jpg
| caption = Flowa, at rest
| race = Firbolg
| class = Druid
| subclass =
| player =
| artist =
| str =
| dex =
| con =
| int =
| wis =
| cha =
| alignment = Neutral Good
| fullname =
| age =
| gender =
| pronouns =
| alias =
| title =
| occupation = Farmer
| affiliation =
| relatives =
| significant_other =
| children =
| religion =
| hometown = Neverwinter
}}
<pre>
{{Character
| name = Flowa
| image = Example.jpg
| caption = Flowa, at rest
| race = Firbolg
| class = Druid
| subclass =
| player =
| creator =
| str =
| dex =
| con =
| int =
| wis =
| cha =
| alignment = Neutral Good
| fullname =
| age =
| gender =
| pronouns =
| alias =
| title =
| occupation = Farmer
| affiliation =
| relatives =
| significant_other =
| children =
| religion =
| hometown = Neverwinter
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
33d554ab4e30909171208b27ca16b8f265cc0548
642
639
2023-11-02T22:47:16Z
Gingerdanger
2
/* Sample output */
wikitext
text/x-wiki
== Description ==
To use this template, add the {{T|{{BASEPAGENAME}}}} template and fill in the appropriate fields. Fields left blank will not appear in articles. This infobox template uses [[w:Help:Infobox|Fandom's infobox syntax]].
== Syntax ==
<pre>
{{Character
| name =
| image =
| caption =
| race =
| class =
| subclass =
| player =
| artist =
| str =
| dex =
| con =
| int =
| wis =
| cha =
| alignment =
| fullname =
| age =
| gender =
| pronouns =
| alias =
| title =
| occupation =
| affiliation =
| relatives =
| significant_other =
| children =
| religion =
| hometown =
}}
</pre>
== Sample output ==
{{Character
| name = Flowa
| image = Example.jpg
| caption = Flowa, at rest
| race = Firbolg
| class = Druid
| subclass =
| player =
| artist =
| str =
| dex =
| con =
| int =
| wis =
| cha =
| alignment = Neutral Good
| fullname =
| age =
| gender =
| pronouns =
| alias =
| title =
| occupation = Farmer
| affiliation =
| relatives =
| significant_other =
| children =
| religion =
| hometown = Neverwinter
}}
<pre>
{{Character
| name = Flowa
| image = Example.jpg
| caption = Flowa, at rest
| race = Firbolg
| class = Druid
| subclass =
| player =
| artist =
| str =
| dex =
| con =
| int =
| wis =
| cha =
| alignment = Neutral Good
| fullname =
| age =
| gender =
| pronouns =
| alias =
| title =
| occupation = Farmer
| affiliation =
| relatives =
| significant_other =
| children =
| religion =
| hometown = Neverwinter
}}
</pre><includeonly>[[Category:Infobox templates]]</includeonly><noinclude>[[Category:Template documentation]]</noinclude>
cca98f5fbdd6b88e855774aa9359567fbcb96562
Marcus Blackblood
0
157
637
187
2023-11-02T22:25:41Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character
| name = Marcus Blackblood
| image = Example.jpg
| caption =
| race = Tiefling (Zariel)
| class = Warlock
| subclass = The Great Old One
| player = Justin
| artist =
| str = 19*
| dex = 16
| con = 14
| int = 12
| wis = 13
| cha = 20
| alignment = Neutral Good
| age = 23
| gender =
| pronouns = He/Him
| alias = PC Richard, Marcus Foxlow (legal name)
| title =
| occupation =
| affiliation = [[The Banes of Thunder]], River Rats, Bheren Foxlow (formerly), The Blackblood Elixir (formerly)
| relatives = Lawrence Blackblood (Father), Nadia Blackblood (Mother), Holly Blackblood (Sister)
| significant_other = Angelica Foxlow (formerly), Blossom
| children =
| religion =
| hometown = Leilon
}}
== Appearance ==
== History ==
Marcus was born the youngest of the Blackblood family of Leilon, a family of Alchemist and Herbalists who are well regarded in the surrounding region. Legends say that the very first Blackblood was able to concoct an elixir so potent that it brought a noble back from the dead. The Blackblood family wore this tale as a badge of honor and named their family shop The Blackblood Elixir as a homage to the very first Blackblood. This shop has been passed down and run by generations of Blackbloods ever since.
But Marcus's birth cast a dark shadow over the reputation and multi-generational identity built by the Blackbloods. A myth of sorts had emerged over the years in regards to how the Blackblood Elixir was created, this myth proclaimed that the creator of the potion made a pact with a demon who bestowed them with the knowledge necessary to create it. If this myth were to be believed it would mean that the foundation that their family was built on was lie. This myth would become reality when Marcus was born as Tiefling, which provided evidence of some sort of infernal link in the Blackbloods past.
== Notable Items ==
* [https://roll20.net/compendium/dnd5e/Gauntlets%20of%20Ogre%20Power#content Gauntlets of Ogre Power]
* Gorthok's Cape of Misty Step
== Additional Companions ==
* Stinky
* Papyrus
* Larka Barka
* Swiftheart (Swifty)
* ThisleHelm
* Shmacles
* SolitConfi
== Trivia ==
[[Category:The Party]]
0786dcf1ca618124b906e51bd49368b9213f49f6
641
637
2023-11-02T22:40:21Z
Gingerdanger
2
/* Trivia */
wikitext
text/x-wiki
{{Character
| name = Marcus Blackblood
| image = Example.jpg
| caption =
| race = Tiefling (Zariel)
| class = Warlock
| subclass = The Great Old One
| player = Justin
| artist =
| str = 19*
| dex = 16
| con = 14
| int = 12
| wis = 13
| cha = 20
| alignment = Neutral Good
| age = 23
| gender =
| pronouns = He/Him
| alias = PC Richard, Marcus Foxlow (legal name)
| title =
| occupation =
| affiliation = [[The Banes of Thunder]], River Rats, Bheren Foxlow (formerly), The Blackblood Elixir (formerly)
| relatives = Lawrence Blackblood (Father), Nadia Blackblood (Mother), Holly Blackblood (Sister)
| significant_other = Angelica Foxlow (formerly), Blossom
| children =
| religion =
| hometown = Leilon
}}
== Appearance ==
== History ==
Marcus was born the youngest of the Blackblood family of Leilon, a family of Alchemist and Herbalists who are well regarded in the surrounding region. Legends say that the very first Blackblood was able to concoct an elixir so potent that it brought a noble back from the dead. The Blackblood family wore this tale as a badge of honor and named their family shop The Blackblood Elixir as a homage to the very first Blackblood. This shop has been passed down and run by generations of Blackbloods ever since.
But Marcus's birth cast a dark shadow over the reputation and multi-generational identity built by the Blackbloods. A myth of sorts had emerged over the years in regards to how the Blackblood Elixir was created, this myth proclaimed that the creator of the potion made a pact with a demon who bestowed them with the knowledge necessary to create it. If this myth were to be believed it would mean that the foundation that their family was built on was lie. This myth would become reality when Marcus was born as Tiefling, which provided evidence of some sort of infernal link in the Blackbloods past.
== Notable Items ==
* [https://roll20.net/compendium/dnd5e/Gauntlets%20of%20Ogre%20Power#content Gauntlets of Ogre Power]
* Gorthok's Cape of Misty Step
== Additional Companions ==
* Stinky
* Papyrus
* Larka Barka
* Swiftheart (Swifty)
* ThisleHelm
* Shmacles
* SolitConfi
== Trivia ==
[[Category:The Party]]
* His strength is normally a 10. However due to the gauntlets, it is functionally a 19.
1809de091127e96c443ce80e21a8913fca0a64b5
670
641
2023-11-10T03:24:04Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character
| name = Marcus Blackblood
| image = [[File:Marcus art.png|300px]]
| caption =
| race = Tiefling (Zariel)
| class = Warlock
| subclass = The Great Old One
| player = Justin
| artist =
| str = 19*
| dex = 16
| con = 14
| int = 12
| wis = 13
| cha = 20
| alignment = Neutral Good
| age = 23
| gender =
| pronouns = He/Him
| alias = PC Richard, Marcus Foxlow (legal name)
| title =
| occupation =
| affiliation = [[The Banes of Thunder]], River Rats, Bheren Foxlow (formerly), The Blackblood Elixir (formerly)
| relatives = Lawrence Blackblood (Father), Nadia Blackblood (Mother), Holly Blackblood (Sister)
| significant_other = Angelica Foxlow (formerly), Blossom
| children =
| religion =
| hometown = Leilon
}}
== Appearance ==
== History ==
Marcus was born the youngest of the Blackblood family of Leilon, a family of Alchemist and Herbalists who are well regarded in the surrounding region. Legends say that the very first Blackblood was able to concoct an elixir so potent that it brought a noble back from the dead. The Blackblood family wore this tale as a badge of honor and named their family shop The Blackblood Elixir as a homage to the very first Blackblood. This shop has been passed down and run by generations of Blackbloods ever since.
But Marcus's birth cast a dark shadow over the reputation and multi-generational identity built by the Blackbloods. A myth of sorts had emerged over the years in regards to how the Blackblood Elixir was created, this myth proclaimed that the creator of the potion made a pact with a demon who bestowed them with the knowledge necessary to create it. If this myth were to be believed it would mean that the foundation that their family was built on was lie. This myth would become reality when Marcus was born as Tiefling, which provided evidence of some sort of infernal link in the Blackbloods past.
== Notable Items ==
* [https://roll20.net/compendium/dnd5e/Gauntlets%20of%20Ogre%20Power#content Gauntlets of Ogre Power]
* Gorthok's Cape of Misty Step
== Additional Companions ==
* Stinky
* Papyrus
* Larka Barka
* Swiftheart (Swifty)
* ThisleHelm
* Shmacles
* SolitConfi
== Trivia ==
[[Category:The Party]]
* His strength is normally a 10. However due to the gauntlets, it is functionally a 19.
db2212c879937ddfd390e8e8afe98486b02c556d
The Banes of Thunder
0
149
640
165
2023-11-02T22:36:36Z
Gingerdanger
2
/* Current */
wikitext
text/x-wiki
A group of adventurers formed in Phandalin to complete some jobs for the people in order to gain some quick cash. The original members were [[Helu]], [[Marcus Blackblood]], [[Sedge Thistlestrike]]. Other adventurers who joined later include [[Fen Melody]], [[Blossom]], [[Lichen]], and [[Eilif Crimsonlight]]. Allies who have joined include [[Ronaan]] and [[Oscar]].
At first the group had no name. They earned it when Helu, Marcus, Sedge, Fen, and Ronaan took down [[Gorthok, the Thunder Boar]].
== History ==
HISTORY GOES HERE
== Members ==
=== Current ===
* [[Helu ]]
* [[Marcus Blackblood]]
* [[Blossom]]
* [[Sedge Thistlestrike]]
* [[Eilif Crimsonlight]]
=== Past ===
* [[Fen Melody]]
* [[Lichen]]
== Animal Companions ==
* [[Porsche]]
* [[Swifty]]
* [[Shitake]]
* [[Craic]]
* [[Amadán]]
== Allies ==
* Ronaan Wisespeaker
* Oscar
* The King of Dragonflies
* Halia Thorton
* Falcon
* Pell
* Ember
== Enemies ==
* Sir Rhadur Stoman
* Gorthok the Thunder Boar
* Queen Mab
b868cdd6d0011bdcd81cc059b0a0508423c87a4a
648
640
2023-11-03T00:50:05Z
Gingerdanger
2
/* Members */
wikitext
text/x-wiki
A group of adventurers formed in Phandalin to complete some jobs for the people in order to gain some quick cash. The original members were [[Helu]], [[Marcus Blackblood]], [[Sedge Thistlestrike]]. Other adventurers who joined later include [[Fen Melody]], [[Blossom]], [[Lichen]], and [[Eilif Crimsonlight]]. Allies who have joined include [[Ronaan]] and [[Oscar]].
At first the group had no name. They earned it when Helu, Marcus, Sedge, Fen, and Ronaan took down [[Gorthok, the Thunder Boar]].
== History ==
HISTORY GOES HERE
== Members ==
=== Current ===
* [[Helu Wisehealer]]
* [[Marcus Blackblood]]
* [[Blossom]]
* [[Sedge Thistlestrike]]
* [[Eilif Crimsonlight]]
=== Past ===
* [[Fen Melody]]
* [[Lichen]]
== Animal Companions ==
* [[Porsche]]
* [[Swifty]]
* [[Shitake]]
* [[Craic]]
* [[Amadán]]
== Allies ==
* Ronaan Wisespeaker
* Oscar
* The King of Dragonflies
* Halia Thorton
* Falcon
* Pell
* Ember
== Enemies ==
* Sir Rhadur Stoman
* Gorthok the Thunder Boar
* Queen Mab
41d1177c4bab55bd0e4b244d982cf0142a38a0da
File:Blossom.png
6
154
643
179
2023-11-03T00:44:50Z
Gingerdanger
2
Gingerdanger uploaded [[File:Blossom.png]]
wikitext
text/x-wiki
== Summary ==
Art by @jupiter-amore
484387269de3818687c6d5d7a48c6353b0ab225a
File:Helu.png
6
151
644
176
2023-11-03T00:45:30Z
Gingerdanger
2
Gingerdanger uploaded [[File:Helu.png]]
wikitext
text/x-wiki
== Summary ==
Art by @jupiter-amore
484387269de3818687c6d5d7a48c6353b0ab225a
File:Sedge art.png
6
368
645
2023-11-03T00:46:19Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Marcus art.png
6
369
646
2023-11-03T00:46:44Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Eilif chibi.png
6
370
647
2023-11-03T00:47:18Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Helu Wisehealer
0
371
649
2023-11-03T00:51:52Z
Gingerdanger
2
Created page with "{{Infobox character | name = Helu | image = | player = Moss | party | age | race | full_name = Helu Wisehealer | alias = Moss | family = | infohdr = Statistics | race = Half elf/half orc | class = Barbarian | subclass = Wild Magic | str = 18 [+4] | dex = 14 [+2] | con = 16 [+3] | wis = 15 [+1] | int..."
wikitext
text/x-wiki
{{Infobox character
| name = Helu
| image =
| player = Moss
| party
| age
| race
| full_name = Helu Wisehealer
| alias = Moss
| family =
| infohdr = Statistics
| race = Half elf/half orc
| class = Barbarian
| subclass = Wild Magic
| str = 18 [+4]
| dex = 14 [+2]
| con = 16 [+3]
| wis = 15 [+1]
| int = 12 [+1]
| cha = 12 [+1]
}}
{{Character|aliases=Moss|relatives=Unnamed adoptive mother
Unnamed adoptive father
Ronaan Wisespeaker [adoptive brother]|affiliation=The Banes of Thunder|race=Half-Elf, Half-Orc|class=Barbarian|age=16|hometown=Neverwinter|name=Helu|Player=Bones|player=Bones|subclass=Wild Magic|image=Helu.png}}
== Appearance ==
Helu is a young half-elf, half-orc woman, even at sixteen years old she towers over most people, including her party. She possesses considerable strength and, before Eilif joined the Banes, Helu was the strongest of her party. She currently stands at 6' 9" (six feet, nine inches) tall, she has snow white hair cut into a diagonal bob with bangs and violet eyes, her skin is a warm brown with lighter vitiligo patches across her body.
While the party is back in Neverwinter, Helu has taken steps to protect her identity from Lord Rhadur Stoman, as well as any of his allies; currently her hair is dyed a dark brown with the crown of her head being a lighter shade of almond, she also wears makeup close to her skin tone to hide her vitiligo, especially on her face and neck. Her current attire is mostly dark browns and blacks, practical (and discreet) for a wandering adventurer, she wears a simple, black, three-quarter sleeved shirt, with a leather "bomber"-styled jacket over top, as well as grey finger-less gloves. A muted, warm orange scarf that can double as a cowl if the need arises, as well as a cloak made from the hide of Gorthok the Thunder Boar. Her pants and boots were found second hand, the pants are a dark wash denim with several brown leather straps, some reinforcing the pants, while others hold small pouches. The pants have leather knee pads and are tucked into severely distressed leather boots.
Not shown in the provided picture, her previous hair style were two dutch braids that went down to mid back and had no bangs. The flower crown depicted was made by a previous party member, Fen, as a token of friendship.<br />
== History ==
<br />
== Notable Items ==
* Hat of Disguise
* Clockwork Amulet
* Bag of Devouring
* Half of the crown of Neverwinter
<br />
== Additional Companions ==
* Wild magic flumph
* Amadán
== Trivia ==
Helu dislikes animals, she has very little to no empathy for them. While this dislike extents to the menagerie the party has amassed, she will do her due diligence and take care of her mount, Amadán.
Helu and Oscar have an ongoing battle of wills on who can eat the macadamia nuts before the other can (so far Oscar is winning much to Helu's chagrin, she did buy them for herself after all).
Some of Helu's favorite foods are macadamia nuts, chocolate, expertly made meat dishes of any kind, and tiny cupcakes.
Her current favorite colors are soft yellows, pinks and blues.
[[Category:The Party]]
6b7764ec49a9bb8f9a0ec36bd52e3142dee3543c
650
649
2023-11-03T00:54:03Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character
| name = Helu
| image =
| caption =
| race = Half-elf/Half-orc
| class = Barbarian [9th]
| subclass = Wild Magic
| player = Moss
| artist =
| str = 19
| dex = 14
| con = 17
| int = 12
| wis = 15
| cha = 12
| alignment = CG
| fullname =
| age = 16
| gender =
| pronouns = She/her
| alias = Moss
| title =
| occupation = Gladiator (formerly)
| affiliation = [[The Banes of Thunder]], Ashkeep (formerly)
| relatives = Unnamed adoptive mother, Unnamed adoptive father, Ronaan Wisespeaker [adoptive brother], unnamed adoptive younger brother
| significant_other =
| children =
| religion =
| hometown = Neverwinter
}}
== Appearance ==
Helu is a young half-elf, half-orc woman, even at sixteen years old she towers over most people, including her party. She possesses considerable strength and, before Eilif joined the Banes, Helu was the strongest of her party. She currently stands at 6' 9" (six feet, nine inches) tall, she has snow white hair cut into a diagonal bob with bangs and violet eyes, her skin is a warm brown with lighter vitiligo patches across her body.
While the party is back in Neverwinter, Helu has taken steps to protect her identity from Lord Rhadur Stoman, as well as any of his allies; currently her hair is dyed a dark brown with the crown of her head being a lighter shade of almond, she also wears makeup close to her skin tone to hide her vitiligo, especially on her face and neck. Her current attire is mostly dark browns and blacks, practical (and discreet) for a wandering adventurer, she wears a simple, black, three-quarter sleeved shirt, with a leather "bomber"-styled jacket over top, as well as grey finger-less gloves. A muted, warm orange scarf that can double as a cowl if the need arises, as well as a cloak made from the hide of Gorthok the Thunder Boar. Her pants and boots were found second hand, the pants are a dark wash denim with several brown leather straps, some reinforcing the pants, while others hold small pouches. The pants have leather knee pads and are tucked into severely distressed leather boots.
Not shown in the provided picture, her previous hair style were two dutch braids that went down to mid back and had no bangs. The flower crown depicted was made by a previous party member, Fen, as a token of friendship.<br />
== History ==
<br />
== Notable Items ==
* Hat of Disguise
* Clockwork Amulet
* Bag of Devouring
* Half of the crown of Neverwinter
<br />
== Additional Companions ==
* Wild magic flumph
* Amadán
== Trivia ==
Helu dislikes animals, she has very little to no empathy for them. While this dislike extents to the menagerie the party has amassed, she will do her due diligence and take care of her mount, Amadán.
Helu and Oscar have an ongoing battle of wills on who can eat the macadamia nuts before the other can (so far Oscar is winning much to Helu's chagrin, she did buy them for herself after all).
Some of Helu's favorite foods are macadamia nuts, chocolate, expertly made meat dishes of any kind, and tiny cupcakes.
Her current favorite colors are soft yellows, pinks and blues.
[[Category:The Party]]
fcca556b1dd093d094086148fa9453f39042cfe5
659
650
2023-11-03T04:18:55Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character
| name = Helu
| image = [[Helu.png]]
| caption =
| race = Half-elf/Half-orc
| class = Barbarian [9th]
| subclass = Wild Magic
| player = Moss
| artist =
| str = 19
| dex = 14
| con = 17
| int = 12
| wis = 15
| cha = 12
| alignment = CG
| fullname =
| age = 16
| gender =
| pronouns = She/her
| alias = Moss
| title =
| occupation = Gladiator (formerly)
| affiliation = [[The Banes of Thunder]], Ashkeep (formerly)
| relatives = Unnamed adoptive mother, Unnamed adoptive father, Ronaan Wisespeaker [adoptive brother], unnamed adoptive younger brother
| significant_other =
| children =
| religion =
| hometown = Neverwinter
}}
== Appearance ==
Helu is a young half-elf, half-orc woman, even at sixteen years old she towers over most people, including her party. She possesses considerable strength and, before Eilif joined the Banes, Helu was the strongest of her party. She currently stands at 6' 9" (six feet, nine inches) tall, she has snow white hair cut into a diagonal bob with bangs and violet eyes, her skin is a warm brown with lighter vitiligo patches across her body.
While the party is back in Neverwinter, Helu has taken steps to protect her identity from Lord Rhadur Stoman, as well as any of his allies; currently her hair is dyed a dark brown with the crown of her head being a lighter shade of almond, she also wears makeup close to her skin tone to hide her vitiligo, especially on her face and neck. Her current attire is mostly dark browns and blacks, practical (and discreet) for a wandering adventurer, she wears a simple, black, three-quarter sleeved shirt, with a leather "bomber"-styled jacket over top, as well as grey finger-less gloves. A muted, warm orange scarf that can double as a cowl if the need arises, as well as a cloak made from the hide of Gorthok the Thunder Boar. Her pants and boots were found second hand, the pants are a dark wash denim with several brown leather straps, some reinforcing the pants, while others hold small pouches. The pants have leather knee pads and are tucked into severely distressed leather boots.
Not shown in the provided picture, her previous hair style were two dutch braids that went down to mid back and had no bangs. The flower crown depicted was made by a previous party member, Fen, as a token of friendship.<br />
== History ==
<br />
== Notable Items ==
* Hat of Disguise
* Clockwork Amulet
* Bag of Devouring
* Half of the crown of Neverwinter
<br />
== Additional Companions ==
* Wild magic flumph
* Amadán
== Trivia ==
Helu dislikes animals, she has very little to no empathy for them. While this dislike extents to the menagerie the party has amassed, she will do her due diligence and take care of her mount, Amadán.
Helu and Oscar have an ongoing battle of wills on who can eat the macadamia nuts before the other can (so far Oscar is winning much to Helu's chagrin, she did buy them for herself after all).
Some of Helu's favorite foods are macadamia nuts, chocolate, expertly made meat dishes of any kind, and tiny cupcakes.
Her current favorite colors are soft yellows, pinks and blues.
[[Category:The Party]]
c8db3e6ff918b4d6513266169d9aea36f5ffb90e
661
659
2023-11-03T05:20:55Z
Gingerdanger
2
wikitext
text/x-wiki
<pre style="white-space: pre-wrap;"{{Character
| name = Helu
| image = [[File:Helu.png|300px]]
| caption =
| race = Half-elf/Half-orc
| class = Barbarian [9th]
| subclass = Wild Magic
| player = Moss
| artist =
| str = 19
| dex = 14
| con = 17
| int = 12
| wis = 15
| cha = 12
| alignment = CG
| fullname =
| age = 16
| gender =
| pronouns = She/her
| alias = Moss
| title =
| occupation = Gladiator (formerly)
| affiliation = [[The Banes of Thunder]], Ashkeep (formerly)
| relatives = Unnamed adoptive mother, Unnamed adoptive father, Ronaan Wisespeaker [adoptive brother], unnamed adoptive younger brother
| significant_other =
| children =
| religion =
| hometown = Neverwinter
}}</pre>
== Appearance ==
Helu is a young half-elf, half-orc woman, even at sixteen years old she towers over most people, including her party. She possesses considerable strength and, before Eilif joined the Banes, Helu was the strongest of her party. She currently stands at 6' 9" (six feet, nine inches) tall, she has snow white hair cut into a diagonal bob with bangs and violet eyes, her skin is a warm brown with lighter vitiligo patches across her body.
While the party is back in Neverwinter, Helu has taken steps to protect her identity from Lord Rhadur Stoman, as well as any of his allies; currently her hair is dyed a dark brown with the crown of her head being a lighter shade of almond, she also wears makeup close to her skin tone to hide her vitiligo, especially on her face and neck. Her current attire is mostly dark browns and blacks, practical (and discreet) for a wandering adventurer, she wears a simple, black, three-quarter sleeved shirt, with a leather "bomber"-styled jacket over top, as well as grey finger-less gloves. A muted, warm orange scarf that can double as a cowl if the need arises, as well as a cloak made from the hide of Gorthok the Thunder Boar. Her pants and boots were found second hand, the pants are a dark wash denim with several brown leather straps, some reinforcing the pants, while others hold small pouches. The pants have leather knee pads and are tucked into severely distressed leather boots.
Not shown in the provided picture, her previous hair style were two dutch braids that went down to mid back and had no bangs. The flower crown depicted was made by a previous party member, Fen, as a token of friendship.<br />
== History ==
<br />
== Notable Items ==
* Hat of Disguise
* Clockwork Amulet
* Bag of Devouring
* Half of the crown of Neverwinter
<br />
== Additional Companions ==
* Wild magic flumph
* Amadán
== Trivia ==
Helu dislikes animals, she has very little to no empathy for them. While this dislike extents to the menagerie the party has amassed, she will do her due diligence and take care of her mount, Amadán.
Helu and Oscar have an ongoing battle of wills on who can eat the macadamia nuts before the other can (so far Oscar is winning much to Helu's chagrin, she did buy them for herself after all).
Some of Helu's favorite foods are macadamia nuts, chocolate, expertly made meat dishes of any kind, and tiny cupcakes.
Her current favorite colors are soft yellows, pinks and blues.
[[Category:The Party]]
80cb24c5d9141e8a988c4b7ace0ab7388f3fafd9
662
661
2023-11-03T05:21:22Z
Gingerdanger
2
wikitext
text/x-wiki
<pre style="white-space: pre-wrap;">{{Character
| name = Helu
| image = [[File:Helu.png|300px]]
| caption =
| race = Half-elf/Half-orc
| class = Barbarian [9th]
| subclass = Wild Magic
| player = Moss
| artist =
| str = 19
| dex = 14
| con = 17
| int = 12
| wis = 15
| cha = 12
| alignment = CG
| fullname =
| age = 16
| gender =
| pronouns = She/her
| alias = Moss
| title =
| occupation = Gladiator (formerly)
| affiliation = [[The Banes of Thunder]], Ashkeep (formerly)
| relatives = Unnamed adoptive mother, Unnamed adoptive father, Ronaan Wisespeaker [adoptive brother], unnamed adoptive younger brother
| significant_other =
| children =
| religion =
| hometown = Neverwinter
}}</pre>
== Appearance ==
Helu is a young half-elf, half-orc woman, even at sixteen years old she towers over most people, including her party. She possesses considerable strength and, before Eilif joined the Banes, Helu was the strongest of her party. She currently stands at 6' 9" (six feet, nine inches) tall, she has snow white hair cut into a diagonal bob with bangs and violet eyes, her skin is a warm brown with lighter vitiligo patches across her body.
While the party is back in Neverwinter, Helu has taken steps to protect her identity from Lord Rhadur Stoman, as well as any of his allies; currently her hair is dyed a dark brown with the crown of her head being a lighter shade of almond, she also wears makeup close to her skin tone to hide her vitiligo, especially on her face and neck. Her current attire is mostly dark browns and blacks, practical (and discreet) for a wandering adventurer, she wears a simple, black, three-quarter sleeved shirt, with a leather "bomber"-styled jacket over top, as well as grey finger-less gloves. A muted, warm orange scarf that can double as a cowl if the need arises, as well as a cloak made from the hide of Gorthok the Thunder Boar. Her pants and boots were found second hand, the pants are a dark wash denim with several brown leather straps, some reinforcing the pants, while others hold small pouches. The pants have leather knee pads and are tucked into severely distressed leather boots.
Not shown in the provided picture, her previous hair style were two dutch braids that went down to mid back and had no bangs. The flower crown depicted was made by a previous party member, Fen, as a token of friendship.<br />
== History ==
<br />
== Notable Items ==
* Hat of Disguise
* Clockwork Amulet
* Bag of Devouring
* Half of the crown of Neverwinter
<br />
== Additional Companions ==
* Wild magic flumph
* Amadán
== Trivia ==
Helu dislikes animals, she has very little to no empathy for them. While this dislike extents to the menagerie the party has amassed, she will do her due diligence and take care of her mount, Amadán.
Helu and Oscar have an ongoing battle of wills on who can eat the macadamia nuts before the other can (so far Oscar is winning much to Helu's chagrin, she did buy them for herself after all).
Some of Helu's favorite foods are macadamia nuts, chocolate, expertly made meat dishes of any kind, and tiny cupcakes.
Her current favorite colors are soft yellows, pinks and blues.
[[Category:The Party]]
16ab1d0301ed0400fad9b2802c9ca4dbb1523c46
663
662
2023-11-03T05:21:55Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character
| name = Helu
| image = [[File:Helu.png|300px]]
| caption =
| race = Half-elf/Half-orc
| class = Barbarian [9th]
| subclass = Wild Magic
| player = Moss
| artist =
| str = 19
| dex = 14
| con = 17
| int = 12
| wis = 15
| cha = 12
| alignment = CG
| fullname =
| age = 16
| gender =
| pronouns = She/her
| alias = Moss
| title =
| occupation = Gladiator (formerly)
| affiliation = [[The Banes of Thunder]], Ashkeep (formerly)
| relatives = Unnamed adoptive mother, Unnamed adoptive father, Ronaan Wisespeaker [adoptive brother], unnamed adoptive younger brother
| significant_other =
| children =
| religion =
| hometown = Neverwinter
}}
== Appearance ==
Helu is a young half-elf, half-orc woman, even at sixteen years old she towers over most people, including her party. She possesses considerable strength and, before Eilif joined the Banes, Helu was the strongest of her party. She currently stands at 6' 9" (six feet, nine inches) tall, she has snow white hair cut into a diagonal bob with bangs and violet eyes, her skin is a warm brown with lighter vitiligo patches across her body.
While the party is back in Neverwinter, Helu has taken steps to protect her identity from Lord Rhadur Stoman, as well as any of his allies; currently her hair is dyed a dark brown with the crown of her head being a lighter shade of almond, she also wears makeup close to her skin tone to hide her vitiligo, especially on her face and neck. Her current attire is mostly dark browns and blacks, practical (and discreet) for a wandering adventurer, she wears a simple, black, three-quarter sleeved shirt, with a leather "bomber"-styled jacket over top, as well as grey finger-less gloves. A muted, warm orange scarf that can double as a cowl if the need arises, as well as a cloak made from the hide of Gorthok the Thunder Boar. Her pants and boots were found second hand, the pants are a dark wash denim with several brown leather straps, some reinforcing the pants, while others hold small pouches. The pants have leather knee pads and are tucked into severely distressed leather boots.
Not shown in the provided picture, her previous hair style were two dutch braids that went down to mid back and had no bangs. The flower crown depicted was made by a previous party member, Fen, as a token of friendship.<br />
== History ==
<br />
== Notable Items ==
* Hat of Disguise
* Clockwork Amulet
* Bag of Devouring
* Half of the crown of Neverwinter
<br />
== Additional Companions ==
* Wild magic flumph
* Amadán
== Trivia ==
Helu dislikes animals, she has very little to no empathy for them. While this dislike extents to the menagerie the party has amassed, she will do her due diligence and take care of her mount, Amadán.
Helu and Oscar have an ongoing battle of wills on who can eat the macadamia nuts before the other can (so far Oscar is winning much to Helu's chagrin, she did buy them for herself after all).
Some of Helu's favorite foods are macadamia nuts, chocolate, expertly made meat dishes of any kind, and tiny cupcakes.
Her current favorite colors are soft yellows, pinks and blues.
[[Category:The Party]]
6699087197a8ea15ef365be6451019d4570c28ad
File:Celtic Boar.jpg
6
372
651
2023-11-03T04:07:09Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:CrownofNeverwinter.png
6
373
652
2023-11-03T04:09:08Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:SwordCoast.png
6
374
653
2023-11-03T04:12:21Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:Neverwinter.webp
6
375
654
2023-11-03T04:13:18Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:TheFeywild.jpg
6
376
655
2023-11-03T04:14:41Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:FeywildPic.jpg
6
377
656
2023-11-03T04:15:17Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:TavernPatrons.png
6
378
657
2023-11-03T04:16:29Z
Gingerdanger
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Thunder, Ice, and Everything Nice Wiki
0
2
665
240
2023-11-03T05:43:31Z
Gingerdanger
2
wikitext
text/x-wiki
<div style="text-align: center; font-size: x-large; padding: 1em;">'''Welcome to the {{SITENAME}}!'''</div>
In a little town on the Sword Coast, a group of strangers took a quest to earn some cash.
How strange to think they would go on to kill a dragon, aid a would-be prince, and fall into the lands of the Fey. Strange happenings surround these adventurers, threatening to snare them in a web of ice and magic, as they rise to fame.
==Important articles==
<gallery position="center" captionalign="center" navigation="true">
File:Celtic Boar.jpg|link=The Banes of Thunder|[[The Banes of Thunder]]
File:CrownofNeverwinter.png|link=The Crown of Neverwinter| [[The Crown of Neverwinter]]
File:SwordCoast.png|link=The Sword Coast| [[The Sword Coast]]
File:Neverwinter.webp|link=Neverwinter| [[Neverwinter]]
File:FeywildPic.jpg|link=The Feywild| [[The Feywild]]
File:TavernPatrons.png|link=NPCs| [[NPCs]]
</gallery>
<!-- The gallery above works well for individual articles, but it would also be good to have another below it that points to important Category: pages. -->
735105cf72cf01fa4892f8e1e082a89a57910c40
MediaWiki:Common.css
8
379
666
2023-11-03T05:54:28Z
Gingerdanger
2
Created page with "<small>Small text</small>/* CSS placed here will be applied to all skins */ .infotable { float: right; padding: 5px; margin-left: 3px; background: #eaecf0; border: 2px solid #003aff; width: 25%; } .infotable th { text-align: left; }"
css
text/css
<small>Small text</small>/* CSS placed here will be applied to all skins */
.infotable {
float: right;
padding: 5px;
margin-left: 3px;
background: #eaecf0;
border: 2px solid #003aff;
width: 25%;
}
.infotable th {
text-align: left;
}
6948fb74c48d42bcd68760974bbc029d16dc7c13
Sedge Thistlestrike
0
159
667
198
2023-11-10T03:06:01Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|name=Sedge Thistlestrike|image=Sedge art.png|aliases=Sun/Son
Don|relatives=Unnamed Father
Unnamed Mother|affiliation=The Banes of Thunder|age=25|hometown=Candlekeep|player=Ike|race=Kalashtar|class=Paladin|subclass=Oath of Devotion|str=17 [+3]|dex=9 [-1]|con=12 [+1]|wis=15 [+2]|int=13 [+1]|cha=17 [+3]}}
== Appearance ==
== History ==
== Notable Items ==
* Dragon Slayer Longsword
* Goggles of Night
* Mithral Chain Mail
* Sending Stones
* Wand of Pyrotechnics
== Additional Companions ==
* Porche
== Trivia ==
[[Category:The Party]]
27266c9bb8ee6a6c0dc897d94ccec47213ba43bb
668
667
2023-11-10T03:06:49Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|name=Sedge Thistlestrike|image=[[File:Sedge art.png|300px]]|aliases=Sun/Son
Don|relatives=Unnamed Father
Unnamed Mother|affiliation=The Banes of Thunder|age=25|hometown=Candlekeep|player=Ike|race=Kalashtar|class=Paladin|subclass=Oath of Devotion|str=17 [+3]|dex=9 [-1]|con=12 [+1]|wis=15 [+2]|int=13 [+1]|cha=17 [+3]}}
== Appearance ==
== History ==
== Notable Items ==
* Dragon Slayer Longsword
* Goggles of Night
* Mithral Chain Mail
* Sending Stones
* Wand of Pyrotechnics
== Additional Companions ==
* Porche
== Trivia ==
[[Category:The Party]]
eb68926ca303474335489cb584f7e146acc39b4b
Blossom
0
158
669
195
2023-11-10T03:22:03Z
Gingerdanger
2
wikitext
text/x-wiki
{{Character|name=Blossom|image=[[File:Blossom.png|300px]]|relatives=Unknown|affiliation=The Banes of Thunder|age=Unknown|hometown=Unknown|player=Kate|race=Eladrin|class=Sorcerer|subclass=Wild Magic|str=9 [-1]|dex=16 [+3]|con=15 [+2]|wis=13 [+1]|int=12 [+1]|cha=19 [+4]}}
== Appearance ==
== History ==
=== Before joining the party ===
Much of Blossom's history from before joining the Banes of Thunder is unknown, as she suffers from amnesia. Current theories about her past range from involvement in the Fey Mob to being the avatar of the missing Queen Titania.
During the party's trip to the Fey Wild, she was recognized by a few people from her past, bringing new memories to light.<br />
== Notable Items ==
* Elven Chain
* Immovable Rod
* Hat of Wizardry
* Cursed Fedora
== Additional Companions ==
* Craic
* Oscar, Fairy Dragon
== Trivia ==
Blossom gets her name from a series of letters in her possession when she woke up in Neverwinter Forest.
Blossom, as an Eladrin, can usually be found in her Autumn form.
[[Category:The Party]]
b425eb269cc08f857074dcd67666222f75b5bd26
671
669
2023-11-12T01:27:34Z
23.243.188.81
0
/* Notable Items */
wikitext
text/x-wiki
{{Character|name=Blossom|image=[[File:Blossom.png|300px]]|relatives=Unknown|affiliation=The Banes of Thunder|age=Unknown|hometown=Unknown|player=Kate|race=Eladrin|class=Sorcerer|subclass=Wild Magic|str=9 [-1]|dex=16 [+3]|con=15 [+2]|wis=13 [+1]|int=12 [+1]|cha=19 [+4]}}
== Appearance ==
== History ==
=== Before joining the party ===
Much of Blossom's history from before joining the Banes of Thunder is unknown, as she suffers from amnesia. Current theories about her past range from involvement in the Fey Mob to being the avatar of the missing Queen Titania.
During the party's trip to the Fey Wild, she was recognized by a few people from her past, bringing new memories to light.<br />
== Notable Items ==
* Elven Chain
* Immovable Rod
* Hat of Wizardry
* Cursed Fedora (former)
== Additional Companions ==
* Craic
* Oscar, Fairy Dragon
== Trivia ==
Blossom gets her name from a series of letters in her possession when she woke up in Neverwinter Forest.
Blossom, as an Eladrin, can usually be found in her Autumn form.
[[Category:The Party]]
e710963095669ac0f0b5d08682d4ce4fa26e0bed